Match ends, Brazil 0, Colombia 1.
Brazil's Neymar was shown a red card after the final whistle at the Copa America as his side were beaten by Colombia for the first time since 1991.
The Barcelona forward kicked a ball at Pablo Armero in frustration, before Colombia's Carlos Bacca was also sent off for a retaliatory shove.
Defender Jeison Murillo had got the only goal with a close-range finish in a packed goalmouth after 36 minutes.
Brazil toiled hard, but struggled to carve out clear chances.
Colombia play Peru in their final Group C game, with Brazil taking on Venezuela. Brazil, Colombia and Venezuela are level at the top of the table with three points each.
It was the teams' first competitive meeting since Brazil's 2-1 victory in the World Cup quarter-finals last summer and the match began with the same pace and physicality that marked that encounter.
After Colombia's Teofile Gutierrez had been booked for a heavy challenge on Dani Alves, he was himself on the receiving end of a body-check that saw Fernandinho yellow-carded.
Colombia's defeat in their opening game of the tournament against Venezuela meant their need for points was greater and they created more opportunities in the first half.
Aston Villa's Carlos Sanchez saw a shot deflected wide, before Murillo pounced as the ball pinballed around the box to score his first international goal.
Striker Radamel Falcao - who had a disappointing spell on loan at Manchester United last season - looked no closer to rediscovering his best form and remained a peripheral figure for Colombia.
But his side did not look in need of another goal as they stubbornly held Brazil at bay for the most part.
Indeed they could have extended their lead with Chelsea's Juan Cuadrado sending a swerving shot just wide after cutting in off the right and James Rodriguez shaving the post in the final few minutes.
Their one major scare came early in the second half when Murillo's under-cooked backpass put goalkeeper David Ospina in trouble but Roberto Firmino lofted his shot over the bar as the ball broke to him 12 yards out.
Liverpool's Philippe Coutinho - introduced at the interval - occasionally sparked into life but failed to wrestle the match Brazil's way.
- 1de Oliveira Galvao
- 2Alves da Silva
- 14Thiago Silva
- 6Filipe Luís
- 8Mendes TrindadeSubstituted forTardelli Martinsat 76'minutes
- 5FernandinhoBooked at 33mins
- 19WillianSubstituted forDouglas Costaat 68'minutes
- 10NeymarBooked at 90mins
- 17FredSubstituted forCoutinhoat 45'minutes
- 11FirminoBooked at 41mins
- 4David Luiz
- 7Douglas Costa
- 9Tardelli Martins
- 12Murara Neto
- 15Cerqueira Teles
- 18de Barros Ribeiro
- 20de Souza
- 6C Sánchez
- 5ValenciaSubstituted forMejíaat 80'minutes
- 11Ju Cuadrado
- 9FalcaoSubstituted forIbarboat 69'minutes
- 19GutiérrezBooked at 20minsSubstituted forBaccaat 76'minutesBooked at 90mins
- Enrique Osses
- Shots on Target
Second Half ends, Brazil 0, Colombia 1.
Corner, Brazil. Conceded by Cristian Zapata.
Attempt missed. Jeison Murillo (Colombia) left footed shot from more than 40 yards on the left wing is too high.
Foul by Fernandinho (Brazil).
James Rodríguez (Colombia) wins a free kick in the defensive half.
Attempt blocked. Roberto Firmino (Brazil) left footed shot from outside the box is blocked. Assisted by Dani Alves.
Attempt missed. James Rodríguez (Colombia) left footed shot from the left side of the box is close, but misses to the right. Assisted by Víctor Ibarbo.
Dani Alves (Brazil) wins a free kick in the attacking half.
Foul by Alexander Mejía (Colombia).
Dani Alves (Brazil) wins a free kick in the defensive half.
Foul by Carlos Bacca (Colombia).
Foul by Philippe Coutinho (Brazil).
Juan Zuñiga (Colombia) wins a free kick on the right wing.
Substitution, Colombia. Alexander Mejía replaces Edwin Valencia.
Hand ball by Dani Alves (Brazil).
Attempt missed. Roberto Firmino (Brazil) header from very close range is close, but misses to the left. Assisted by Douglas Costa with a cross.
Dani Alves (Brazil) wins a free kick on the right wing.
Víctor Ibarbo (Colombia).
Substitution, Colombia. Carlos Bacca replaces Teófilo Gutiérrez.