ST. LOUIS -- John Lackey threw seven strong innings after a shaky beginning, Trevor Rosenthal escaped his own jam in the ninth and the St. Louis Cardinals beat the Kansas City Royals 4-3 on Thursday night.
Randal Grichuk and Matt Carpenter hit two-run homers as the Cardinals won in the makeup of a rainout last month.
As in the originally scheduled game, St. Louis and Kansas City led their league in wins and Lackey (9-5) and Chris Young (8-6) were the scheduled starters.
Rosenthal, pitching for the third straight day, took over to begin the ninth with a 4-2 lead. Alex Rios led off with a single and Omar Infante followed with a triple.
The Royals went on to put runners on second and third with no outs, but Rosenthal held on for his 30th save in 32 chances. Mike Moustakas grounded out to end it.
Paid attendance of 46,003 was the 24th sellout for St. Louis, which took the season series 4-2, but there were several thousand no-shows for the opener of an elongated 11-game homestand. Both teams wore throwback jerseys from the 1985 I-70 World Series won by Kansas City in seven games.
Salvador Perez and Alex Rios had consecutive RBI singles in the first for the Royals, but they managed just two more hits in Lackey's final six innings. The 36-year-old right-hander is 5-1 with a 1.75 ERA in his last eight starts, working seven or more innings in all but one of them.
Carpenter's 10th homer, and just his second in two months, put the Cardinals ahead 4-2 in the third. Grichuk, who also singled and flied out to the wall in right, has a team-leading 13 RBIs this month.
The Cardinals are 61-34 overall and 34-12 at Busch Stadium, both major league bests.
Young gave up four runs in three innings, his shortest outing since he allowed five runs while getting just two outs for Seattle last Sept. 1 at Oakland.
Royals: Young has been hindered by back tightness and is 1-3 in his last five starts.
Cardinals: Jaime Garcia threw five hitless innings in his first rehab start for Class A Peoria, the only blemish on his line a hit batter. ... Rookie 1B Stephen Piscotty was a pregame lineup scratch with neck stiffness.
Royals: Jeremy Guthrie (7-5, 5.36) faces the Astros to open a three-game series at home. He's 20-12 with a 3.68 ERA post-break the last four seasons.
Cardinals: Rookie Tim Cooney (0-0, 3.33) faces the Braves, making his sixth career start in search of a first decision. The lefty threw 5 2/3 scoreless innings his last time out, an 18-inning loss to the Mets on Sunday.