Matt Holliday homered for twice St. Louis, which lost its fourth in a row. Chicago won for the third time in four games.
The Cubs trailed 4-2 entering the eighth, but tied it 4-4 on Darwin Barney's two-out, two-run double by off reliever Trevor Rosenthal (1-3). Navarro followed with his fifth pinch-hit RBI of the season to give Chicago a 5-4 lead.
Blake Parker (1-1) picked up the victory for the Cubs, who last won a series in St. Louis on Sept. 13-15, 2010.
Welington Castillo homered in the second to give Chicago a 1-0 lead.
Castillo and Nate Schierholtz drew leadoff walks to start the eighth. Rosenthal struck out the next two batters before Barney hit his 20th double of the season.
Kevin Gregg picked up his 25th save in 29 opportunities despite giving up Holliday's 15th homer of the season, a solo shot with one out in the ninth. Gregg retired the final two batters on ground outs.
Schierholtz added a run-scoring single in the ninth.
Castillo also had a sacrifice fly in the fifth that trimmed the deficit to 3-2.
Holliday hit a three-run homer in the fourth off Chicago starter Carlos Villanueva to give the Cardinals a 3-1 lead.
St. Louis rookie right-hander Michael Wacha, making his fourth major league start, surrendered two runs on five hits in a 99-pitch stint. He was recalled from Triple-A Memphis earlier in the day for the spot start.
The three-run outburst broke a string of 17 straight scoreless innings by St. Louis.
Villanueva gave up four runs on seven hits over six innings. His last win as a starter came on April 18.
The Cardinals stretched the lead to 4-2 on back-to-back doubles by Carpenter and Beltran in the sixth.
NOTES: St. Louis OF Jon Jay, INF Daniel Descalso and C Tony Cruz met with several Real Madrid soccer players, including standout Cristiano Ronaldo, before to Real Madrid's match with Inter Milan earlier in the day. ... St. Louis rookie C Rob Johnson started for the third time this season and had two hits. ... Cruz is mired in an 0-for-10 slump. ... Chicago is 34-34 since May 26.
Link to box score: Chicago 6 at St. Louis 5
Link to game discussion at The Cardinal Nation message board