Brazil got off to the perfect start when Thiago Silva, allowed to run free at the far post, swept home Neymar's corner-kick after just seven minutes. David Luiz netted a thunderous free-kick in the 68th minute to make it 2-0, before James Rodriquez netted a consolation goal for Colombia from the penalty spot.
READ: All the action as it happened
It was a breathless first half as both sides adopted an attacking approach, with David Ospina in the Colombian goal the busier of the two goalkeepers.
The majority of the chances fell to Hulk, who twice shot straight at the keeper when well placed to score and fired another well wide as Brazil produced some neat one-touch football in patches.
Colombia were mostly reduced to long-range attempts and set-plays in the first half, none of which paid off as a few heated tackles and skirmishes arose inbetween some fantastic end-to-end action.
The second half was a tighter affair, and slightly scrappier, until a moment of brilliance sent Estadio Castelao into raptures.
Faced with a free-kick opportunity about 35 yards from goal, David Luiz stepped up and belted the ball ferociously with his instep and watched it swerve and dip like a heat-seeking missile past Ospina, who got nowhere near it.
Ten minutes later Colombia were handed a lifeline when Julio Cesar brought down Carlos Bacca in the area, and Rodriguez stepped up to the spot and sent the Brazil keeper the wrong way for his sixth goal of the tournament.
There was a raft of substitutions in the closing 10 minutes as Luiz Felipe Scolari looked to close up shop, but he also had to remove Neymar from the field on a stretcher with what looked like a serious back injury.
Brazil will face Germany in the first semi-final next week without Thiago Silva, who received a stupid caution for unsporting behaviour by taking the ball off Ospina as he was trying to punt it upfield.