Substitute Juan Quintero lashed home a penalty five minutes from time as Colombia came back from 2-0 down to stun France 3-2 on Friday.
France cruise ends in shock turnaround
Barcelona centre-back Samuel Umtiti was penalised for a rash lunge on Quintero's fellow substitute Jose Izquierdo as the South Americans received a morale boost ahead of the World Cup in Russia.
It was a remarkable turnaround after the hosts had got off to a flying start at the Stade de France.
Olivier Giroud scored his 30th goal for France as Manchester United midfielder Paul Pogba was left on the bench -- as he has frequently been by Jose Mourinho at Old Trafford.
Thomas Lemar doubled the lead for a vibrant France but Luis Muriel gave the South Americans hope following a mistake by goalkeeper Hugo Lloris.
Lemar's Monaco team-mate Radamel Falcao equalised and Quintero then had the last word, just two minutes after entering the fray.
Pogba came on as a substitute for the final quarter but had little impact.
The game began after a minute's silence in memory of the three victims of the jihadist attacker who struck in southwest France earlier in the day before being shot dead by police.
Strong start from Parisien hosts
Even without the elegant drive that Pogba brings to the midfield, France were on the front foot from the off and threatened several times to put one of their trio of forwards in behind the Colombian backline.
But when they deservedly took the lead on 11 minutes, it was almost entirely down to a horrendous gaffe by Arsenal reserve goalkeeper David Ospina. Lucas Digne timed his run down the left flank perfectly to gallop onto Lemar's inch-perfect through ball but the full-back's cross on the stretch was weak and straight at Ospina.
The Arsenal stopper inexplicably fumbled it, though, allowing Giroud to thrash a rising shot into the roof of the net as he fell backwards. It meant he matched the number of goals scored in a France shirt by former greats Just Fontaine and Jean-Pierre Papin.
Lemar doubled the lead with a beautifully-worked team goal on 26 minutes.
Djibril Sidibe started a rapier counter-attack that saw Kylian Mbappe exchange passes with Antoine Griezmann, whose backheeled return when in a shooting position seemed unnecessary, but Mbappe helped the ball on to Lemar to slash home left-footed.
France's joy was short-lived as the goalkeeping union had an evening to forget. Two minutes later Luis Muriel's inswinging cross from the left looked to be heading harmlessly into Lloris's arms. But the Tottenham goalkeeper was put off by Davinson Sanchez's attempts to divert the cross home from inside the six-yard box and dived the wrong way as the ball plopped almost apologetically past him.
Six minutes from half-time, Ospina went some way to making up for his earlier error, spreading himself well to block Griezmann's shot from Mbappe's through ball.
James and Falcao help find the comeback
Colombia created little but James Rodriguez curled a free-kick just over the bar in first half injury time.
And they were the more lively at the start of the second period with Muriel having two chances, blasting a speculative volley well off target when in acres of space and then being denied by Lloris -- another making up for an earlier blunder -- from 10 yards out.
France didn't take note and Colombia soon equalised as N'Golo Kante lost possession in midfield and James scampered clear down the right before pulling back a cross for Falcao to convert from 15 yards.
A week after his brace for Sevilla helped knock Manchester United out of the Champions League, Wissam Ben Yedder came on for Giroud to make his France debut, but to little effect.
It was instead Colombian substitutes Quintero and Izquierdo who made the difference.