Brazil's captain Thiago Silva will also be suspended for Tuesday's semi-final against Germany after he followed up his first World Cup goal with his second yellow card of the tournament. (Agencies)
Brazil are in the World Cup semi-finals for the first time in 12 years and coach Luiz Felipe Scolari is one step nearer his vow to win the cup for a sixth time.
But Scolari buried his head in his hands when he saw Silva booked and faces an anxious wait for news of Neymar who was reportedly taken to hospital for tests.
Neymar was stretchered off with a back injury after being clattered by Colombia defender Juan Camilo Zuniga. Globo television said the Brazilian star was taken away in an ambulance.
Colombia's James Rodriguez extended his lead as the tournament's top scorer with his sixth goal in five games from the penalty spot after Julio Cesar brought down Carlos Bacca.
But Colombia now leave and Brazil move on to only their second World Cup meeting with Germany in Belo Horizonte on Tuesday. The Germans beat France 1-0 earlier in the day.
Roared off on by a fervent home crowd, the hosts made a fast start and were ahead inside seven minutes.
Just as in their last 16 clash with Chile a finish at the back post from a Neymar corner opened the scoring as Silva escaped the clutches of Carlos Sanchez to bundle home.
Silva then had defensive duties to do as he got the slightest of touches to Juan Cuadrado's drive to turn it behind as Colombia tried to react.
Jose Pekerman's men could have been further behind moments later, as David Ospina got down well to parry Hulk's effort before making a more comfortable save from Oscar.
Silva had to intervene once more to break up flowing Colombia counter-attack led by Rodriguez, but Cuadrado's poor pass allowed the Brazilian captain to intercept when he had two free teammates waiting for a cross.
Ospina denied Hulk once more with another save low to his left before Neymar bent a free-kick inches over the crossbar as Brazil ended the half looking to kill the game off.
Chances at both ends dried up early on in the second-half, despite the game continuing to be played at a frenetic pace.
Brazil were dealt a huge blow midway through the second-half when Silva was booked for barging into Ospina as he sought to clear the ball.
Brazilian nerves were settled in the 69th minute when Luiz sent a wonderful dipping free-kick high past Ospina from fully 30 metres.
Yet, Colombia were back in the game 10 minutes from time when substitute Carlos Bacca was upended by Julio Cesar inside the area.
The Brazil goalkeeper was lucky just to see a yellow card from Spanish referee Carlos Velasco Carballo. But he could do nothing to stop Rodriguez rolling home his sixth goal of the tournament from the resulting penalty.
Scolari's men saw out the final few minutes, but there could be more bad news ahead as they wait for news of Neymar's fate.
Brazil's captain Thiago Silva will also be suspended for Tuesday's semi-final against Germany after he followed up his first World Cup goal with his second yellow card of the tournament.