SAN FRANCISCO (AP) -- San Francisco's Matt Cain ended a personal run of 15 pitching starts without a win by guiding the Giants to a 5-3 victory against the Chicago Cubs in Saturday's clash of National League division leaders.
The other NL division leader, Washington, also lost at Miami, while the key American League matches saw Boston win comfortably against Cleveland and Kansas City take out a pitching duel against the slumping Chicago White Sox.
San Francisco's Cain got his first victory in ten months, pitching six strong innings. He also hit a two-run double in the second inning.
Buster Posey added a two-run homer for the Giants, who have won nine of their past 10.
Miami hung on in a nervous finish to beat Washington 3-2.
Jose Fernandez pitched six innings, allowing one run with nine strikeouts and improved to 21-1 in 31 starts at home.
Marlins closer A.J. Ramos loaded the bases with none out in the ninth and gave up one run, but closed it out for his 13th save.
Boston's Joe Kelly made an impressive return from a shoulder injury, holding Cleveland hitless for the first 6 2/3 innings and guiding the Red Sox to a 9-1 win.
Mookie Betts had a grand slam and a solo homer for Boston while Jackie Bradley Jr. extended his majors' best hitting streak to 26 games, closing in one the Red Sox record of 34.
Kansas City's Lorenzo Cain hit a solo home run as the Royals edged the White Sox 2-1.
Cain's leadoff shot over center field in the sixth off Miguel Gonzalez made it 2-0 after Eric Hosmer's first-inning sacrifice fly.
Chicago has lost eight of 10, slicing its AL Central lead to 1-1/2 games.
Baltimore's Matt Wieters hit a three-run homer with two outs in the top of the ninth inning to lift the Orioles over the Los Angeles Angels 3-1.
Wieters, who had hit a double in the fifth to get Baltimore on base for the first time in the game, lifted a sinker from Joe Smith for the winning shot.
Colorado rallied with a four-run ninth inning to win at Pittsburgh for the first time in nine tries, beating the Pirates 5-1.
Cristhian Adames hit his first career homer, a two-run shot to straightaway center field came, after Tony Wolters had singled off Mark Melancon to snap a 1-1 tie and another run scored on an error. Melancon was charged with three unearned runs in 2/3 of an inning.
Adames, a rookie infielder, entered the game in the eighth inning and homered off Jared Hughes in his 115th career plate appearance.
St. Louis' Mike Leake pitched seven scoreless innings to lead the Cardinals to a 6-2 win against Arizona.
Leake retired eight straight between the second and fourth innings and battled back from a 3-0 count to strike out Chris Owings in the fifth to thwart the Diamondbacks' best scoring opportunity against him.
Leake even showed off at the plate with a double in the sixth, and made a nice barehanded play to throw out a runner at first in the seventh.
Jedd Gyorko, Matt Adams and Yadier Molina homered for St. Louis.
New York's David Wright singled home the winning run with the bases loaded in the bottom of the ninth inning, completing a Mets rally and a 5-4 win against Milwaukee.
Wright singled off Michael Blazek on a three-ball no-strike pitch, for his first game-ending hit since 2012.
Texas' Cesar Ramos gave up one run in six solid innings to lead the Rangers to a 2-1 win against state rival Houston.
San Diego's Yangervis Solarte, back from six weeks out with a hamstring injury, drew a bases-loaded walk with two outs in the 11th inning to give the Padres a 3-2 win against Los Angeles; their second straight walkoff victory against the Dodgers.
Detroit's Michael Fulmer struck out 11 over seven sparkling innings to steer the Tigers past Tampa Bay 5-4.
Seattle ace Felix Hernandez pitched six scoreless innings to guide the Mariners to a 4-0 win at Cincinnati.
The New York Yankees won a season-high fourth game with a 5-1 victory at Oakland, with Starlin Castro breaking out of a slump and getting three hits.
Atlanta's pitched 6-1/3 scoreless innings as the Braves won 2-0 at Philadelphia to claim only their second series victory this season.
Minnesota's Eduardo Nunez homered to cap a five-run rally in the eighth inning as the Twins suddenly broke loose and went on to beat Toronto 5-3.