ST. LOUIS - Jason Heyward was on base so much in 93-degree heat, the body finally gave in.

"I was cramping all over," Heyward said after matching a career best with five hits as the St. Louis Cardinals beat the New York Mets 12-2 on Saturday night. "I haven't been feeling well the last few days."

Both Heyward and manager Mike Matheny said there was "zero" concern going forward. Heyward told trainers and Matheny he could have stayed in if the game was closer.

Randal Grichuk had two homers and six RBIs and John Lackey worked seven strong innings for St. Louis, benefiting from the cushion.

"I definitely pitched to the scoreboard a little bit," Lackey said. "Trying to challenge guys, trying to throw strikes and trying to keep the momentum going, trying to get those guys back in the dugout to hit."

Mets starter Bartolo Colon (9-8) trailed by four runs after just one-third of an inning and surrendered seven runs in 4 1/3 innings. The 42-year-old right-hander was roughed up by the Cardinals for the second time, giving up eight runs in 4 1/3 innings in a 9-0 loss May 20.

"That wasn't the Bartolo Colon we've known," manager Terry Collins said. "That guy has only walked nine guys all year, let alone the first guy of the game."

Colon said through an interpreter that the Cardinals capitalized on his tendency to go after hitters.

"They were really aggressive and attacked my pitches," Colon said. "They know I'm going to be aggressive in the zone and they took advantage of it.

Heyward has seven hits, including a triple and double, two RBIs and two steals in the first two games of the series. He was removed after singling in the eighth.

Grichuk was 3 for 3 with a two-run homer off Carlos Torres that capped a four-run fifth and a three-run shot off Alex Torres in the eighth.

Jhonny Peralta added three hits and an RBI. St. Louis improved to major league-bests of 58-33 overall and 33-11 at home.

The Cardinals scored four in the first, fifth and eighth.

Lackey (8-5) scattered 10 hits, one of them to .084-hitting Colon, but was hurt only by Michael Cuddyer's eighth homer leading off the sixth. The 36-year-old right-hander is 4-1 with a 1.63 ERA his last seven starts, working seven or more innings in all but one of them.

Cuddyer had three hits and Ruben Tejada added an RBI double in the eighth for New York. Cuddyer has five career homers against Lackey, his most against any pitcher.

Colon got a visit from pitching coach Dan Warthen after facing just seven hitters and already down 3-0. He's lost his last four decisions, posting a 6.18 ERA in that span, although he allowed two earned runs in 13 innings his last two starts prior to the break.

"This year they've been lucky, they've been good," Colon said. "I was lucky enough last year to beat them twice and this year they beat me twice."

The Mets have homered in six straight games, scoring 17 of their 19 runs via the long ball.

TRAINER'S ROOM

Mets: Cuddyer says he'll probably have to deal with a left knee bone bruise the rest of the season.

Cardinals: LHP Jaime Garcia (groin) and RHP Jordan Walden (bicep) threw side sessions.

UP NEXT

Mets: Jonathon Niese (5-8, 3.61) has won his last two starts and held left-handed hitters to one hit in 15 at-bats his last three. The Cardinals' Mark Reynolds is 6 for 12 with two homers against Niese.

Cardinals: Rookie lefty Tim Cooney (0-0, 4.34) makes his fifth career start seeking his first decision.

IN THE HOUSE

WWE wrestler Randy Orton, in town for an event Sunday night, met with Cardinals players on the field during batting practice.

NOTABLE

Heyward also had five hits Sept. 26, 2013, against the Phillies while with Atlanta. ... Grichuk also had two homers June 20 at Philadelphia. ... Matt Adams was the last Cardinals player to drive in six runs June 23, 2014, at Colorado.