Colombia 1-2 Peru: La Tricolor fall as 2019 Copa runners-up open account
Colombia had the bulk of possession but lacked quality in the final third, while Peru were opportunistic with Sergio Pena's 17th-minute opener and offered a slice of fortune with Yerry Mina's own goal in the 64th minute.
La Tricolor, who had collected four points from their opening two group games and not conceded a goal, had levelled via Miguel Borja's penalty eight minutes into the second half.
Peru were routed 4-0 by defending champions Brazil in their opener, but bounced back to move into third spot in the five-team Group B, with four nations advancing.
Colombia had the first shot of the match inside the opening 60 seconds, when Duvan Zapata curled an effort wide.
In the 12th minute, Colombia came close again as Juan Cuadrado's bending effort went fractionally wide of the targe.
Peru took the lead against the run of play in the 17th minute, when an unmarked Sergio Pena lashed home a rebound from inside the box after Yoshimar Yotun's awkward shot hit the post.
Colombia had an avenue back shortly after the interval when the onrushing Peru goalkeeper Pedro Gallese brought down Borja after veteran Christian Ramos' error. Borja dusted himself off to convert.
Borja had another sight on goal in the 58th minute, dragging his shot wide, while Tottenham defender Davinson Sanchez headed over from a set-piece shortly after the hour as Colombia posed more of a threat.
Peru, however, re-took the lead in the 64th minute from a corner, when Mina inadvertently chested the ball on goal with goalkeeper David Ospina unable to prevent it from crossing the line.
Borja had a powerful header saved after substitute Luis Muriel's run as Colombia searched in vain for an equaliser.