TORONTO -- Danny Salazar outlasted David Price in a pitchers' duel as the Cleveland Indians beat the Toronto Blue Jays 4-2 on Monday night.

The two aces combined for 19 strikeouts in a tight game between two of the hottest teams in the American League.

Price (13-5) struck out nine over seven innings, allowing three earned runs as Toronto (74-57) ended a three-game win streak. Josh Donaldson had a two-run triple and Edwin Encarnacion extended his hit streak to 26 games with a single and a double.

Brett Cecil came in from the bullpen for a scoreless eighth before the Indians added a run in the ninth off LaTroy Hawkins.

Salazar (12-7) fanned 10 batters and allowed two runs over seven innings as Cleveland (64-66) won its sixth in a row and gained ground the AL's wild card race. Bryan Shaw pitched a scoreless two-thirds of an inning, with Cody Allen earning his 28th save of the season.

Jason Kipnis opened the scoring for Cleveland in the first inning, coming home as Michael Brantley grounded out into a double play for a 1-0 lead.

Donaldson came to the plate in the bottom of the fifth with Ryan Goins and Ben Revere on first and second. Chants of "M-V-P" rained down on the all-star third baseman as he worked Salazar to a full count.

Rogers Centre exploded with cheers as Donaldson stroked a triple to right field, giving Toronto a 2-1 lead. Donaldson slid into third base hard, his helmet falling off as his momentum carried him back to his feet and the 46,643 in attendance gave him a loud standing ovation.

Encarnacion extended his hit streak with a single to shallow left field in the sixth inning. Shawn Green holds the record for longest Blue Jays hit streak, hitting in 28 consecutive games in 1999.

Raburn tied it for Cleveland in the seventh inning, driving in Carlos Santana from first base with a triple off the right-field wall. Goins's relay throw to home almost got Santana out, but was offline.

The Indians then claimed a 3-2 lead when Jerry Sands singled to left field to bring home Raburn.

Toronto threatened to retake the lead in the eighth inning. Jose Bautista reached base on a single, Encarnacion pushed him to third with a double and then Cleveland intentionally walked Troy Tulowitzki to load the bases.

Justin Smoak struck out swinging to end the threat.

An error by Donaldson in the ninth inning gave the Indians a 4-2 lead. Lonnie Chisenhall singled off Donaldson's glove, with the Blue Jays third baseman scrambling in to the outfield to recover the ball. His throw back to third was above Hawkins's reach, sailing in to the stands.

Third base umpire Clint Fagan awarded Yan Gomes a base -- home plate -- on the play.

Donaldson had a shot at redemption in the bottom of the ninth, with Kevin Pillar and Goins on first and second with two out. He struck out, ending the game.

Notes: Prime Minister Stephen Harper was in attendance as he campaigns across Canada for the upcoming federal election. ... Parapan Am gold medallist Jason Roberts threw out the opening pitch. He won gold in F32-34 men's shot put at the 2015 Toronto Parapan Am Games in August.