Julian Brandt’s fine curling effort came back off the bar, whilst Sven Bender also hit the woodwork from close range.
In between times, Neymar had opened the scoring via the bar with a sumptuous dipping effort from 25 yards for his third goal of the tournament.
Weverton made a fine save from Meyer and Paris Saint-Germain defender Marquinhos was fortunate when his mishit clearance flew inches over his own crossbar.
However, Weverton was beaten for the first time in the competition just before the hour mark when Meyer swept home Toljan’s low cross.
Brazil piled on the pressure in the final half hour of normal time as Gabriel Jesus turned Renato Augusto’s dangerous cross just wide, substitute Felipe Anderson fluffed his lines and Neymar’s effort from distance flew just off target.
The hosts had the better chances in extra-time too as Luan burst clear only to see his shot blocked before Anderson was denied when one-on-one with Horn.
Thankfully for Rogerio Micale’s men they were far more clinical from the spot as Augusto, Marquinhos, Rafinha and Luan all netted to hand Neymar the chance to live up to his billing as the host’s poster boy for the Games.