Uruguay, playing without Luis Suarez after the striker was thrown out of the World Cup for biting Italy defender Giorgio Chiellini, went close through Edinson Cavani and Maximiliano Pereira but created few clear chances at the Maracana.
Playing at their first World Cup since 1998, Colombia went ahead in spectacular style when Rodriguez took the ball on his chest and volleyed past Uruguay goalkeeper Fernando Muslera from outside the box just before the half-hour mark.
Rodriguez doubled Colombia's lead early in the second half, sweeping home Juan Cuadrado's header from close range. The goal was his fifth of the World Cup, making him the tournament's leading scorer.
Colombia will play Brazil in the quarter-finals after the hosts beat Chile in a penalty shootout earlier on Saturday.
Image: James Rodriguez of Colombia celebrates after scoring his team's first goal
Photograph: Jamie Squire/Getty Images