The new version would make it possible to try children between 16 and 18 years as adults if they are accused of certain serious offences.
The bill still faces a second vote and two votes in the Senate.
The U-turn was seen as a victory for the lower house speaker, Eduardo Cunha.
The new version of the bill was broadly similar to the one which lawmakers had rejected the night before but, according to its supporters, with a slightly narrower range of offences than before.
If it becomes law, youngsters between 16 and 18 could face the same sentences as adults and be sent to adult jails for crimes such as rape and murder with intent to kill.
Critics said it would have disastrous consequences, with young people put at risk in Brazil's overcrowded and dangerous adult prisons.
But its supporters said that if the bill became law, new detention centres would be created specifically for the 16-18 age group.
Opponents of the bill accused its main backer, Mr Cunha, of abusing congressional procedures by putting the bill to the vote for a second time less than 24 hours after it had been narrowly rejected.
The campaign to reduce the age of criminal responsibility gained momentum in Brazil after a recent spate of high-profile crimes involving adolescents.
A day after it rejected a bill which would have lowered the age of criminal responsibility from 18 to 16, the lower house of Brazil's Congress has approved a new version of the proposal.