Lynn (5-0) struck out five and walked two, improving to 10-0 in 10 starts and one relief appearance since losing to Milwaukee on Sept. 7. He became the NL's first five-game winner.
It's the second straight quick start for Lynn, who was 6-0 with a 1.48 ERA through May 7 last season, then went 12-7 with a 4.46 ERA the rest of the way.
Trevor Rosenthal pitched a hitless eighth, and Edward Mujica finished the six-hitter for his sixth save in six chances. Leading the NL Central at the start of May for the sixth straight year, St. Louis has won six of its last nine.
Homer Bailey (1-3) gave up four runs and nine hits in 5 1/3 innings. He is 3-9 against St. Louis, including 0-5 with a 6.90 ERA at Busch Stadium.
Brandon Phillips drove in both Reds' runs, hitting a solo homer in the ninth.
Beltran's fourth-inning homer was his third in the six-game homestand, and Phillips' RBI double tied the score in the sixth.
Allen Craig walked with one out in the bottom half, Yadier Molina singled him to second, and Carpenter, Pete Kozma and Daniel Descalso chased Bailey with consecutive run-scoring singles for a 4-1 lead.
Notes: Beltran threw out Bailey at second in the fifth inning when the pitcher tried to stretch a single to right. ... Lynn struck out Shin soo-Choo three times. ... The Reds have won three of their last 29 series in St. Louis. ... Cincinnati is off Thursday after playing 20 days in a row. and starts a three-game series at Chicago on Friday. Mike Leake (1-1, 4.34) will face the Cubs' Carlos Villanueva (1-1, 2.29) in the opener. St. Louis will play four games at Milwaukee starting Thursday, when Jake Westbrook (1-1, 0.98) and Wily Peralta (2-1, 5.02) start.
Link to box score: St. Louis 4, Cincinnati 2
Link to game discussion at The Cardinal Nation message board