After taking a 2-1 lead through Mateus Uribe in the 52nd minute, Colombia had to pay the price for missing several chances.
James Rodríguez put Colombia ahead in the 35th minute by heading in a cross from Santiago Arias with his right foot and then heading the ball into the goal with his left foot.
Uruguay equalized just a minute after the restart when Mathias Oliveira was left free to head home a Nicolás de la Cruz corner.
But Colombia restored their lead when Luis Diaz came in from the left flank and fed Rafael Borre, whose low cross was blocked by Uribe on goal.
Luis Diaz missed a great chance for the third when he was sent one-on-one with the goalkeeper, but he curled his shot over the bar.
Rodriguez saw a low shot from inside the box hit the post and a minute later fed Jhon Arias, who clipped his shot against the bar.