TORONTO — Edwin Encarnacion hit a three-run homer, Kelly Johnson added a solo shot and the Toronto Blue Jays ended the Oakland Athletics' seven-game winning streak with a 10-4 victory Thursday.

TORONTO — Edwin Encarnacion hit a three-run homer, Kelly Johnson added a solo shot and the Toronto Blue Jays ended the Oakland Athletics' seven-game winning streak with a 10-4 victory Thursday.

Johnson went 2 for 4 with two RBIs as the Blue Jays avoided a three-game sweep and rebounded from Wednesday's 16-0 loss.

Travis Snider had two hits and two RBIs, driving in the tying run with a squeeze bunt, and Brett Lawrie scored three runs.

Brandon Lyon (1-0) pitched 11/3 innings for his first win since joining Toronto in a 10-player trade with Houston on Friday. Tommy Milone (9-7) gave up eight runs — five earned — and six hits in seven innings with no walks and seven strikeouts as Oakland dropped to 16-3 in July.

Mariners 4, Royals 1

At Seattle, Jason Vargas allowed one hit in eight innings to win his career-high 11th game, and Mike Carp had three hits to lead Seattle.

Vargas (11-7) allowed only a fourth-inning double. He struck out five and walked three.

He retired the first 11 batters he faced before Billy Butler's 200th career double drove in Lorenzo Cain in the fourth. Vargas walked Cain, then fell behind 3-0 before Butler drilled a fastball to the gap in left-center.

Kansas City did not get a runner to second base against Vargas after the fourth.

Orioles 6, Rays 2

At Baltimore, Chris Tillman took a three-hitter into the seventh inning, Chris Davis homered and drove in four runs, and Baltimore avoided a three-game sweep.

Nick Markakis had two hits for the Orioles, who had scored only one run in each of their three previous games. It was just the second time in 10 games that Baltimore scored more than four runs.

Indians 5, Tigers 3

At Cleveland, Asdrubal Cabrera singled home the go-ahead run in a four-run seventh inning as Cleveland rallied to beat Detroit ace Justin Verlander.

Carlos Santana and Travis Hafner tied it at 3 by homering on the first two pitches of the inning by Verlander (11-6).

Cardinals 7, Dodgers 4

At St. Louis, David Freese and Matt Carpenter each had three of the Cardinals' season-high 18 hits, handing the Dodgers their second straight loss since acquiring Hanley Ramirez.

Obtained a day earlier from Miami, Ramirez started at third base and batted fifth for the second straight game. He had an infield hit, two walks and a steal, and he also hit a double-play grounder. The 2009 NL batting champion is 2 for 6 with three walks an RBI with his new team.

Matt Holliday hit his 17th homer, his third on a 6-1 homestand for St. Louis, which fell behind 4-2 by allowing four runs in the fifth and then scored four in the bottom half.

Nationals 8, Brewers 2

At Milwaukee, Edwin Jackson pitched seven scoreless innings, Steve Lombardozzi hit a three-run triple and Washington sent Milwaukee to its seventh consecutive loss.

The Nationals have won six consecutive games, matching a season high, and improved to 59-39. The last time a Washington-based team was 20 games over .500 was 1933, when the American League Senators finished 99-53 and lost the World Series in five games to the New York Giants.

Pirates 5, Astros 3

At Houston, prized prospect Starling Marte homered on his first major league pitch to help the Pirates hand the Astros their 10th straight loss.

A.J. Burnett (12-3) shut out Houston until Chris Johnson and Carlos Corporan connected for solo homers in the eighth. Burnett allowed four hits with five strikeouts in 71/3 innings.

Johnson hit a two-out RBI single off Joel Hanrahan in the ninth, but Hanrahan struck out Brian Bogusevic for his 30th save.

Mets 3, Diamondbacks 1

At Phoenix, Matt Harvey dazzled in his major league debut, holding Arizona to three hits and striking out 11 over 51/3 innings.

Scott Hairston hit a two-run double and Andres Torres tripled and scored for the Mets, who snapped a six-game losing streak.