ST. LOUIS (AP) -- Lance Lynn was feeling so good that he wanted to stay in the game. These days, everything is going right for the pitcher.
Lynn pitched seven solid innings and the St. Louis Cardinals got home runs from Yadier Molina and Carlos Beltran in a 7-1 victory over the Arizona Diamondbacks on Monday night.
''It was a good night,'' Lynn said. ''We had a good plan and I was able to make some pitches.''
The right-hander allowed one run and five hits, struck out six and walked one. He improved to 8-1 for the second consecutive season while becoming the third National League pitcher to reach eight wins, trailing Patrick Corbin's league-leading nine for Arizona.
The Diamondbacks got their only run in the sixth. Gerardo Parra had a leadoff double, moved up on Martin Prado's flyout and came home on Paul Goldschmidt's groundout.
It was the only time a runner reached second against Lynn, who allowed four runs in four-plus innings against Arizona in his first start of the season on April 3.
This time around, the Diamondbacks couldn't figure him out.
''He's very deceptive,'' Arizona manager Kirk Gibson. ''He's pitched well for them this year and he pitched a good game against us tonight. So, to beat guys like that you've got to play a much tighter game and we were unable to match him tonight.''
Molina hit a leadoff drive in the fifth on the same day he received a one-game suspension from Major League Baseball for making contact with umpire Mike Everitt during an argument on Sunday. The All-Star catcher appealed the decision.
Molina's fourth homer lifted St. Louis to a 5-0 lead. He finished with two hits and two RBIs, and leads the National League with a .350 batting average.
He wasn't available after the game but Lynn (8-1) said his catcher's performance came as no surprise.
''He wasn't happy with the way (Sunday) went and you can't blame him,'' Lynn said. ''You knew that he was going to show up tonight and give everything he had and he did that for us.''
Arizona starter Trevor Cahill was charged with five runs and nine hits in five innings. He walked three and had no strikeouts for the first time this season.
Cahill (3-6) had allowed four earned runs or less in 29 consecutive starts.
''I was just behind in the count it felt like the whole game and the couple times I was ahead I wasn't able to put them away,'' Cahill said.
Beltran and Matt Carpenter had three hits apiece for the Cardinals. Beltran's 13th homer drove in Carpenter and made it 7-1 in the sixth. He also drove in Carpenter in the fourth with a single.
The Cardinals went 4 for 8 with runners in scoring position against the usually stout Cahill. Entering the game, batters had just a .111 average against him in that situation.
David Freese singled in Molina in the third, making it 3-0 and extending his hitting streak to a career-high 13 games. Molina singled in Matt Holliday, before taking second on the throw home and third on a wild pitch.
NOTES: Lynn threw 105 pitches. ... Carpenter extended his hitting streak to 12 with a single in the first, tying his career high set from September 12-24, 2012. ... Tyler Skaggs makes his second start of the year Tuesday for the Diamondbacks in place of Brandon McCarthy, who is on the 15-day disabled list with shoulder issues. Arizona has not yet made a roster move to accommodate Skaggs' return from Triple-A Reno. ... St. Louis' Joe Kelly will make his first start of 2013 on Wednesday. He made 16 starts in 2012 with a 4-6 record, but has pitched exclusively out of the bullpen this year with 16 appearances. ... Corbin was named the National League's pitcher of the month for May during which he went 5-0 with a 1.53 ERA.