Freese's two-run blast in the sixth capped a three-run, two-out rally against starter Chris Volstad. Freese added an RBI double in the eighth.
Volstad (0-3) threw six solid innings, retiring St. Louis in order during four of them. But he's still 0-8 in 15 starts since July 10, 2011.
Bryan LaHair homered to lead off the fourth for Chicago's only run. LaHair has four of Chicago's lowest seven home runs this season, the lowest total in the majors.
The Cardinals avoided being swept at Wrigley Field for the first time since July 27-30, 2006. The Cubs took the first two games of the series in their final at-bat, winning their first series of the season under new manager Dale Sveum.
Lynn threw 110 pitches, only the third time this season a Cardinals pitcher has surpassed 100. He's done it on two of those occasions, not bad for a pitcher who only became a starter because rotation stalwart Chris Carpenter went on the disabled list with a shoulder problem. His eight innings marked the longest outing by a Cardinals pitcher this season, and he lowered his ERA to 1.33.
Freese led the Cardinals offense with two hits and three RBIs. Carlos Beltran doubled, walked, scored two runs and stole two bases. Beltran has five steals on the season, already his most since 2009.
Shane Robinson singled three times and stole a base for St. Louis. His three hits matched a career high.
NOTES: The Cardinals are headed back to St. Louis for a six-game homestand beginning Friday against Milwaukee and Pittsburgh. . The Cubs embark on a seven-game trip, with a four-game set beginning at Philadelphia on Friday. They also play three at Cincinnati. . Cubs reliever Kerry Wood threw a bullpen session on Tuesday without incident. He's on the disabled list with right shoulder fatigue. While Wood is eligible to come off the DL on April 29, Sveum said no timetable has been established for his return.