Lance Lynn was a better hitter than he was a pitcher today. And, given that he had knocked in only one run previously in his career, that hasn't been said very often.

Lynn raised his record to 9-1 this season and 27-8 over the last two seasons by beating the Miami Marlins, 13-7. Staggering through the five innings required for him to gain the victory, Lynn had a lot of help. Some of it, astonishingly, came from himself when Lynn, batting .083 at the time, singled home two runs with two out in the fifth inning to stretch to three a Cardinals lead they finally held onto.

Lynn didn’t do much of a job hanging onto a 5-0 lead the Cardinals gave him in the first. By the end of the second, it was gone as the Marlins caught up at 6-6.

"When you get five runs in the first, you can't come back and give up four," said Lynn. "It was a bad day.

"I was fighting it all day. I only had one pitch and that was the fastball. When I threw it, they got hits on it. I wasn't able to get other pitches over for strikes."

But the Cardinals bullpen, in the forms of Seth Maness, Randy Choate, Trevor Rosenthal and Keith Butler, each worked a scoreless inning to preserve the win.

"The bullpen did a terrific job," said manager Mike Matheny

"That's a scrappy team," he said, referring to the Marlins. "They made that feel like a doubleheader."

And the Cardinals’ often indomitable offense kept scoring, because it had to. When the day was done, Carlos Beltran had two homers and a triple, Yadier Molina had three runs batted in and David Freese and Daniel Descalso had three hits apiece, with Freese's fourth homer of the season representing the go-ahead run.

Every Cardinals starter had at least one hit and all but Pete Kozma and Lynn scored a run.

Beltran’s multi-homer game was the 36th of his career and 11th of his career when he homered from each side of the plate. His current league-high hitting streak extended to 14 and his second homer gave him 350 for his career.