Det var högt tempo inledningsvis i matchen. Tyskland fick ett fint läge när man kom fri med måvakten men Weverton var snabbt framme och kunde rensa.
Därefter var spelet böljande med chanser åt båda håll. Men det skulle bli kaptenen Neymar som spräckte nollan. Via en fantastisk frispark satte han ledningsmålet och hemmapubliken fullkomligt exploderade.
Tyskarna var inte utan chanser efter målet. Men brassarna behöll ledningen i halvtid.
Det var ett försiktigt Brasilien som klev ut på planen i den andra halvleken. Alldeles för försiktigt skulle det visa sig.
I den 59:e minuten kunde nämligen Tyskland till slut kvittera. Max Meyer sköt in 1-1 och skakade om värdnationen rejält.
Det blev underhållande sista minuter av ordinarie tid men inga fler mål gjordes och matchen togs till förlängning.
Men benen var trötta hos de båda lagen och bollen ville inte in då heller. I stället fick finalrysaren avgöras på straffar.
Straffskyttarna hade nerver av stål. Det dröjde ända till omgång nummer fem innan Tysklands Nils Petersen blev den förste att missa.
Det blev därför Neymar som fick stega fram. Symboliskt dundrade han in den avgörande straffen - och Brasilien kunde tituleras OS-mästare 2016.
Startelvor:
Brasilien: Weverton; Zeca, Marquinhos, Caio, Santos; Walance, Augusto; Barbosa, Luan, Jesus; Neymar.
Tyskland: Horn; Toljan, Ginter, Suele, Klostermann; S Bender, L Bender, Brandt, Meyer, Gnabry; Selke.