TORONTO -- A franchise-best 14th straight win sure didn't come easy for the Cleveland Indians.
"I guess if you're going to set a record, you might as well do it the hard way," Indians pitcher Trevor Bauer said.
Cleveland won 13 straight in 1942 and again in 1951.
It's the longest winning streak since Atlanta won 14 straight in 2013, and the longest by an AL team since Oakland won 20 in a row in 2002.
Santana doubled and scored in the third as the surging Indians survived a marathon game and disappointed a sellout crowd that came for a Canada Day matinee that lasted 6 hours and 13 minutes, featured 19 pitchers and saw 34 left on base.
The 19 innings matched the longest game in Blue Jays history. Toronto played 19 against Detroit in August 2014.
Having used seven of their eight relievers, the Indians turned to Bauer, Saturday's scheduled starter, in the 15th. Bauer (7-2) worked five innings for the win.
"I thought what Trevor did was above and beyond," Indians manager Terry Francona said.
Only closer Cody Allen, who was unavailable after working the previous three games, did not pitch for Cleveland.
After seven Blue Jays relievers combined to pitch 10 1-3 scoreless innings, Toronto turned to infielder Ryan Goins in the 18th.
Jose Ramirez and Lonnie Chisenhall began the inning with singles, but Ramirez was caught in a rundown on Michael Martinez's fielder's choice grounder. After intentionally walking Tyler Naquin, Goins got out of the bases-loaded jam by getting Chris Gimenez to ground into a double play.
Barney, who started the game at second base, replaced Goins in the 19th. The infielders became the ninth and 10th position players to pitch for Toronto.
"That's a weird game," Francona said. "Shoot, they're matching up with infielders."
Santana greeted Barney (0-1) with a drive to right-center, his 17th.
Donaldson nearly tied it in the 19th but his drive to right was caught on the warning track.
"I thought he hit it out for sure," Bauer said. "He hit it and I was like `You've got to be kidding me.'"
The Blue Jays lost major league RBI leader Edwin Encarnacion when he was ejected for arguing after being called out on strikes to end the first inning. Manager John Gibbons was also ejected.
All three Blue Jays batters were called out on strikes in the first, with Encarnacion livid after being rung up on a 3-2 pitch that looked outside.
Encarnacion made contact with home plate umpire Vic Carapazza's left shoulder after being ejected. Gibbons rushed out to break up the argument and was also tossed.
Catcher Russell Martin was ejected by Carapazza after striking out to end the 13th. A fuming Martin had to be restrained by bench coach DeMarlo Hale and third base coach Luis Rivera as he screamed at Carapazza.
"He just wasn't very good today," Martin said of Carapazza. "All the things that everybody in the ballpark were thinking, I didn't say that. I felt like he really didn't have to throw me out."
Expected to start Saturday, Bauer he threw what he called a "fairly intense" bullpen and lifted weights Thursday, then lifted again before Friday's game. "Physically, I'm exhausted," he said.
Blue Jays: OF Jose Bautista (left big toe) is not expected to return before the All-Star break, Gibbons said. Bautista was injured June 16 at Philadelphia.
Indians: Cleveland's starter for Saturday is unknown after Bauer was used in relief. "We're working through that right now," Francona said afterward. "We've got some things we've got to talk through."
Blue Jays: RHP Marco Estrada (5-3, 2.81) has allowed at least one home run in each of his past five starts.