ST. LOUIS - Pittsburgh starter Edinson Volquez pitched a complete game, allowing six hits while improving to 8-6 with his fourth straight win.
The Pirates got two RBIs apiece from Josh Harrison, Andrew McCutchen, Neil Walker and Russell Martin. Martin went 3-for-5 with a home run.
Shelby Miller (7-8) took his third straight loss, and the Cardinals disclosed that All-Star catcher Yadier Molina would sit out 8-12 weeks with a torn ligament in his right thumb.
Indians 9, Yankees 3
CLEVELAND - The Indians overcame a 3-0 deficit with a four-run seventh inning that was highlighted by Asdrubal Cabrera's bases-loaded triple.
Cabrera's triple tied the game, and Michael Brantley put Cleveland ahead to stay with a sacrifice fly later in the inning. Roberto Perez and Carlos Santana each hit two-run home runs in Cleveland's five-run eighth inning.
Zelous Wheeler had a two-run home run for the Yankees.
Angels 15, Rangers 6
ARLINGTON, Texas -- Mike Trout went 4-for-5 with a home run and four RBIs and Kole Calhoun also went 4-for-5 for the Angels, who won for the 16th time in 19 games.
Texas right-hander Colby Lewis (6-6) suffered the loss, giving up a club-record 13 runs (11 earned) on 13 hits in 2 1/3 innings. Catcher Chris Gimenez pitched the ninth for the Rangers, retiring the side in order.
Hector Santiago (1-7) gave up four runs in six innings but won for the first time in 17 consecutive starts, including 11 this year.
Tigers 16, Royals 4
KANSAS CITY, Mo. -- All 11 Tigers players who saw action had at least one hit and scored at least one run as Detroit collected 19 hits and took the first game of an important four-game series.
Torii Hunter went 3-for-6 with a homer and three RBIs, and he had two hits during Detroit's eight-run fifth inning.
Jeremy Guthrie (5-8) gave up eight runs in four-plus innings to take the loss. It was the most runs he has allowed in his career. Drew Smyly (5-8) gave up four runs and eight hits in 6 2/3 innings to pick up the victory.