TORONTO -- Drew Smyly pitched a two-hitter in his first career complete game, and Evan Longoria drove in three runs with a home run and a double as the Tampa Bay Rays defeated the Toronto Blue Jays 8-0 on Friday.

Longoria had three hits and was a triple shy of the cycle. Designated hitter Wil Myers also homered, and right fielder Kevin Kiermaier had three hits, including an RBI double.

Smyly (8-10), a left-hander who was acquired in a July 31 trade that sent left-hander David Price to the Detroit Tigers, retired his final 19 batters and did not allow a walk to earn his second win for the Rays.

Blue Jays right-hander Marcus Stroman (7-5) allowed singles and one run to the first three batters in the Rays' four-run sixth and was replaced by left-hander Aaron Loup. Stroman suffered his third loss in the past four starts.

Cubs 4, Orioles 1

CHICAGO -- Jake Arrieta struck out five and allowed four hits in seven innings in his first appearance against his former team as Chicago beat Baltimore.

Arrieta, acquired in a trade with Baltimore in July 2013, allowed a seventh-inning home run to Nelson Cruz and improved to 7-4 for only his second win since late June. Hector Rondon worked a perfect ninth inning for his 20th save.

Luis Valbuena went 2-for-4 with an RBI and scored a run for the Cubs. Rookie Javier Baez collected his sixth home run in his first 18 games.

Phillies 5, Cardinals 4

PHILADELPHIA -- Kyle Kendrick overcame his customary slow start to win for the first time in nearly a month as Philadelphia beat St. Louis.

Ryan Howard drove in two runs for Philadelphia, which denied St. Louis right-hander Adam Wainwright an opportunity to become the major league's first 16-game winner.

Kendrick (6-11) allowed three runs in the first inning, increasing his season ERA in that inning to 9.69, but he surrendered just one other run -- on Matt Adams' homer -- while going 6 1/3 innings. He yielded eight hits while striking out four and walking one.

Indians 5, Astros 1

CLEVELAND -- Cleveland committed two errors in the top of the ninth inning, leading to a four-run rally -- three coming on a home run by Jon Singleton -- lifting Houston to victory.

With one out in the top of the ninth and the score tied 1-1, Chris Carter drew a walk from Cody Allen (4-3). Dexter Fowler hit a grounder to first baseman Carlos Santana, who threw wildly to second base for an error, allowing Carter to go to third.

Gregorio Petit, pinch running for Carter, then scored when Fowler stole second and catcher Roberto Perez threw wildly to second for an error, allowing Fowler to go to third. Fowler was thrown out at the plate on a fielder's choice grounder, but Singleton then belted a 3-2 pitch from Allen over the left field wall.

Giants 10, Nationals 3

WASHINGTON -- Joe Panik had a career-high four hits and three RBIs, including his first big league homer, as San Francisco ended Washington's 10-game winning streak, which had tied a franchise record.

Panik, whose error led to a 1-0 Washington lead, atoned for that when he hit a three-run homer in the fourth against Doug Fister (12-4) to give the Giants a 3-1 lead. Panik, who entered the game with an average of .397 in August, went 4-for-5.

San Francisco's Tim Hudson (9-9) picked up the win to improve to 18-5 against Washington in 31 starts.

Yankees 4, White Sox 3

NEW YORK -- Martin Prado ended a tough at-bat with a two-out, bases-loaded single in the bottom of the ninth inning, lifting New York past Chicago.

The winning rally started when Ichiro Suzuki lined a single up the middle against Daniel Webb (5-4). After three pickoff attempts, Suzuki was sacrificed to second by Brett Gardner but stayed there when Derek Jeter's sinking liner didn't fall.

The White Sox decided to walk Jacoby Ellsbury, who had two hits that included the game-tying double in the fifth inning, and Mark Teixeira also walked. After Prado fouled off the first three pitches, he worked the count to 2-2 and, with the crowd standing, delivered a single up the middle that scored Suzuki.

Mariners 5, Red Sox 3