Pedro Alvarez hit a grand slam in the first inning off suddenly scuffling 10-game winner Lance Lynn and Andrew McCutchen had two hits before leaving with a sore left wrist, helping the Pittsburgh Pirates beat the St. Louis Cardinals 7-3 Saturday for their fourth victory in a row.

Jeff Karstens (1-2) thrived in sweltering heat, allowing four hits with seven strikeouts in seven strong innings.

Pittsburgh matched its longest winning streak of the year. It was 99 degrees for the first pitch and the temperature spiked to 103 later in the game.

The Pirates are a season-best seven games above .500. If they complete a three-game sweep Sunday it'll mark the franchise's high water mark since the final game of their 96-66 NL East championship team in 1992. Erik Bedard (4-8, 4.27 ERA) opposes Jake Westbrook (6-6, 3.77).

Carlos Beltran drove in a run with his 400th career double off Tony Watson in the eighth for St. Louis, one night after getting his 2,000th career hit. Beltran has an eight-game RBI streak, longest in the majors this season, and leads the league with 61 RBIs.

Jared Hughes retired the last four batters in order for his first save as the Cardinals fell to 17-18 at home.

McCutchen, who leads the Pirates with a .346 average and 51 RBIs with 15 homers, was removed for a pinch hitter in the seventh, four innings after charging to make a diving catch on Beltran's sinking liner. McCutchen also banged into the center field wall in an unsuccessful bid to rob Tony Cruz of a double to start that inning.

Alvarez is 2 for 2 with an astounding 10 RBIs with the bases loaded, the other hit a three-run double to go with two sacrifice flies and a walk. He has 13 RBIs in five games in St. Louis and 15 total against the Cardinals, most of any opponent.

Lynn (10-4) was pummeled for the third straight start, surrendering six runs in five innings. Since combining for 23 strikeouts in consecutive victories earlier this month, the first-year starter who replaced injured Chris Carpenter in the rotation has given up 17 runs on 25 hits in 15 1-3 innings.

The Pirates homered an NL-leading 39 times in June to tie the franchise record set in 1975, and lead the league with 51 road homers.

Lynn got a pair of groundouts to open the game before running into trouble. McCutchen and Garrett Jones singled to put runners at the corners and Neil Walker walked before Alvarez swatted a full-count fastball into the right-field stands for his second career grand slam and 15th homer overall, tying McCutchen for the team lead.

Karstens totaled 17 innings in his first four starts of a season interrupted by a shoulder injury. He struggled only in the third when Cruz scored on Jon Jay's groundout and Matt Holliday added an RBI single to cut the deficit to 4-2.

The Pirates restored the two-run gap in the fifth on Walker's RBI double and a bases-loaded groundout by Clint Barmes.

Cardinals bats were exceedingly quiet over a six-inning stretch that started with the final four innings of Friday's 14-5 loss, going 1 for 19 with a walk.

NOTES: Holliday had two singles and a walk and is batting .500 (25 for 50) the last 12 games with two homers, eight doubles and 13 RBIs. ... The grand slam by Alvarez was the Pirates' first since Derrek Lee against the Cubs' Carlos Marmol last Sept. 3. ... Cardinals 3B coach Jose Oquendo missed his second straight game because of illness. ... Cardinals LHP Barret Browning, whose contract was purchased earlier in the day from Triple-A Memphis, worked two perfect innings in his major league debut after replacing Lynn.