The host nation soared early and locked down late, providing an exciting but nervy 2-1 victory against an in-form Colombian side.
Thiago Silva picked up a goal inside the opening 10 minutes, and David Luiz scored an absolute stunner off a second half free-kick to put Brazil through to the semifinals against Germany.
James Rodriguez stole fans hearts throughout the World Cup, but was silenced for much of the game by a Brazilian midfield doubling as a brick wall.
With Luiz Gustavo suspended on yellow card accumulation, Fernandinho and Paulinho held down the fort in the middle and destroyed plenty of Colombian build-up play.
The final minutes were nervy after Rodriguez converted a penalty, but as Colombia flooded men forward it wasn’t enough to draw level late.
The first real chance fell to the hosts, and they cashed in. Fernandinho released Neymar with a great through ball, and it earned Brazil a corner. Neymar’s ball flew in long to the back post over everyone jumping to connect, but Thiago Silva made a run to the back post, beating converted an easy tap-in.
Silva wasn’t just a goal-scorer for his country. The captain was an iron-clad defender throughout the match, leading his team at the back with gobs of clearances, blocks, and distribution.
Colombia’s only good chance of the half came in the 11th minute when Juan Cuadrado picked up a loose ball in the box and rifled on goal, but it went just wide of the near post.
It was all Brazil from then. Hulk picked up a few first-half chances from a tight angle, but none of them found the target. A shot of his in the 20th minute was saved by David Ospina and the rebound fell to Oscar. The number-10 blasted on net, but Ospina dove and acrobatically grasped the attempt to end the chance.
The referee’s performance left much to be desired, with a pair of weird moments defining his first half. A group of opposing players got upset with each other, and as the referee went to break up the scuffle, Brazil took the quick kick, but the distracted ref somehow let play continue.
In the 38th minute, a Colombian free kick at the top of the box saw the ref use his temporary spray, but as James Rodriguez looked to take the kick, Neymar came charging out of the wall clearly in violation of the 10-yard rule, but the official again swallowed his whistle.
There were 25 first-half fouls, but not a single yellow card produced.
The second half saw Brazil lock down even harder defensively, but they had a few opportunities, and they grabbed one.
As the fouling continued, the referee continued to swallow not only his whistle but his yellow card as well. He finally produced one in the 64th minute to Thiago Silva for a silly challenge on Ospina as he attempted to complete a drop kick.
Rodriguez puzzlingly earned one as well – for his first foul – for a slide-tackle of Hulk on 68 minutes. David Luiz took the free kick and produced an absolute goalazo, smashing the ball into the top corner past a diving Ospina for a 2-0 lead.
The goal actually energized the game again, after it had become more of a midfield battle than the attacking affair we saw in the first half.
Colombia poured men forward, and it earned them a penalty with 10 minutes to go. Rodriguez released substitute striker Carlos Bacca, and Brazilian goalkeeper Julio Cesar scythed down the attacker, earning just a yellow card. Rodriguez took the penalty, and wrong-footed Cesar for the score.
Having pulled one back, the entirety of the final 10 minutes was Colombian attack. Bacca nearly equalized on a header just two minutes after the goal, but it flashed across the face harmlessly.
Brazil has some questions going forward into their semifinal with Germany. Neymar was carried off on a stretcher in the dying minutes after taking a heavy knee into his back, and Thiago Silva is suspended after receiving the second yellow of his tournament.
Brazil – Julio Cesar, T. Silva, Luiz, Maicon, Marcelo; Fernandinho, Paulinho (Hernanes 86′), Oscar; Fred, Neymar (Henrique 88′), Hulk (Ramires 83′).
Goals: Silva 7′, Luiz 68′
Colombia – Ospina; Zuñiga, Zapata, Yepes, Armero; Sanchez, Rodriguez, Cuadrado (Quintero 80′), Guarin, Ibarbo (Ramos 46′); Gutierrez (Bacca 70′).
Goals: Rodriguez (pen) 80′