Harrison Bader and Jose Martinez drove in two runs apiece as the Cardinals crushed the Marlins 7-1 in Miami.
Marcell Ozuna homered for St. Louis, which will go for a three-game sweep on Wednesday.
Dakota Hudson fired seven innings of one-run, four-hit ball to improve to 5-3 with the win.
Miguel Rojas plated the lone run for the Fish, who have dropped six straight. Elieser Hernandez struck out seven in five-and-two-thirds, but gave up three runs to take the loss in his first start of the season.
Ryan O’Hearn hit a solo shot in the seventh inning and the Royals scored twice in the eighth to defeat the Tigers 3-2 at Kauffman Stadium.
Jorge Soler and Cheslor Cuthbert delivered run-producing hits in the eighth.
Scott Barlow got the win and Ian Kennedy worked a spotless ninth to log his fifth save.
KC had lost eight of its previous nine.