Rodriguez set up Roger Martinez's opening goal in the second half with a superb long pass across the pitch, and substitute Duvan Zapata scored late to seal the victory that allowed Colombia to end a 12-year winless streak against the Argentines.
Messi couldn't do enough to spark Argentina, which lost its first Copa America match since the 2007 final against Brazil. It was also the team's first opening defeat in the tournament since 1979.
"Our best player was the entire team," said Colombia coach Carlos Queiroz. "The next match will certainly be more difficult, this is only the beginning."
Both Argentina and Colombia are trying to end title droughts, with the Argentines winless since the 1993 Copa America and the Colombians without a trophy since the 2001 edition.
Argentina lost the finals of the World Cup in 2014 and the Copa America in 2015 and 2016, where it lost both of the latter in penalty shootouts against Chile.
Colombia's last win over Argentina was in South American qualifying for the World Cup in 2007.
"It had been a long time (without beating Argentina)," Zapata said. "Everyone in Colombia is very happy, but there is still a long way to go in the Copa, we still have important matches ahead."
Messi and Rodriguez had a mostly quiet match in Salvador, but Rodriguez helped Colombia take the lead thanks to his great assist for Martinez's 71st-minute opener.
The playmaker had the ball in Colombia's own field before finding Martinez with a long pass toward the area. The forward picked up the ball and cut toward the middle before firing a mid-height shot toward the far corner to open the scoring.
"We are disappointed because they scored a great goal when we were playing better," Messi said. "It will take some time to accept this defeat, but we have to take the positives from today and move on to try to win the next match. We still have plenty of chances."
Zapata sealed Colombia's victory five minutes after entering the match, completing a cross by Jefferson Lerma in the 86th minute.
Argentina came closest to scoring with a close-range header by Messi that missed just wide in the 66th.
Argentina striker Sergio Aguero and Colombia veteran Radamel Falcao also couldn't do much to help their teams break through their opponents' defense in a tense opening match in Group B.
"We improved in the second half and created chances," said Argentina coach Lionel Scaloni, who complained of the bad field conditions at the Arena Fonte Nova. "We still have two matches left and if we win them we will certainly advance."
Argentina will next play against Paraguay in Belo Horizonte, while Colombia will face Qatar in Sao Paulo.
Paraguay and Qatar meet in the other Group B match on Sunday in Rio de Janeiro.
Earlier Saturday, Peru was held by 10-man Venezuela to a 0-0 draw in Group A, a result that left both teams two points behind host Brazil, which opened with a 3-0 win over Bolivia on Friday in Sao Paulo.
Join our new commenting forum
Join thought-provoking conversations, follow other Independent readers and see their replies