The Cardinals snapped a two-game skid with their fourth win in six games. Chicago, which lost five of its first six, had won two in a row.
Lynn (2-0) gave up four hits and one run in 5 1-3 innings. He struck out five, walked two and lowered his ERA to 1.50.
Lynn, the 39th overall pick in the 2008 draft, allowed one run over 6 2-3 innings in his first start, a 9-3 win at Milwaukee on Sunday. He began the season with a 1-1 career mark.
Jon Jay hit his second home run of the season in the seventh off Shawn Camp.
The Cardinals broke open a scoreless game with four runs in the fourth off Chris Volstad (0-1). Molina brought in Matt Holliday and Matt Carpenter with a single up the middle. Daniel Descalso had an RBI triple and Tyler Greene then hit a RBI single.
Chicago managed just two hits through the first five innings before scoring in the sixth on Starlin Castro's RBI single. J.C. Romero relieved Lynn and struck out Ian Stewart and Bryan LaHair to end the threat.
Volstad allowed six hits and three runs over six innings. He struck out four and did not walk a batter.
Chicago outfielder Marlon Byrd went 0-for-3 and is 2-for-27 this season.
Castro committed two errors and has four on the season.
NOTES: The start of the game was delayed 1 hour, 59 minutes by rain. ... The Cardinals scratched third baseman David Freese from the starting lineup for irritation on a finger of his right hand. He got hurt during an at-bat in Friday's home opener against the Cubs. He is as day to day. ... In Sunday's series finale, both teams will mark the 65th anniversary of when Jackie Robinson broke the color barrier. All players will wear No. 42 as part of a tribute to Robinson's legacy.
Before the game, the Cardinals had a pregame ceremony to present World Series rings to players and coaches. Link to photos
Link to boxscore: St. Louis 5, Chicago 1