Lynn (4-0) held Chicago to six hits in becoming the first four-game winner in the majors and helping the Cardinals avoid a three-game sweep.
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 majors-lowest seven home runs this season.
Link to boxscore: St. Louis 5 at Chicago 1