TORONTO -- A big hit by Ryan Goins gave the Blue Jays back-to-back series wins for the first time this season.
Goins singled home the winning run in the ninth inning and Toronto rallied from a four-run deficit to beat the Cleveland Indians 8-7 on Wednesday night.
"We've been knocking on the door a lot and now we're finally knocking that door down," Goins said. "We're going to put our heads down, get as many wins as we can and look up at the end."
The victory was Toronto's seventh come-from-behind win of the year.
"Things have kind of flipped in in the month of May," manager John Gibbons said. "We're starting to win some of those game we couldn't win earlier in the year."
Carrera hit a one-out single in the ninth off Cody Allen (0-1), and Justin Smoak and Steve Pearce walked with two outs. Goins lined Allen's first pitch into the right field corner for his third hit of the game.
"I thought he would try to get ahead of me," Goins said. "I was looking for a heater and got one over the plate."
Allen walked just one batter in 10 April outings but has walked six in four May appearances.
"The walks are killing me, the deep counts are killing me, and tonight it cost us a chance to win a ball game," Allen said.
Roberto Osuna (2-0) pitched a perfect ninth.
Bautista homered in the bottom half against Danny Salazar, who has allowed 11 earned runs in the first inning over seven starts.
Cleveland's first seven batters reached in the third as the Indians chased Liriano, who allowed a season-worst seven runs in two-plus innings and failed to finish four innings for the second straight start. Kipnis and Jose Ramirez had RBI singles, and Guyer greeted Dominic Leone with a three-run double.
Pearce hit a sacrifice fly in the bottom half and Goins chased Salazar with an RBI single. Salazar matched a season-worst by allowing five runs in 2 2/3 innings.
"I didn't want to get to the bullpen too quick but it looked like it wasn't going to get better," manager Terry Francona said.
Carrera tied the score 7-all in the fourth with a two-out homer off Dan Otero.
Blue Jays pitchers have given up an AL-high 65 doubles this season.
Cleveland lost a game decided after the seventh inning for the first time this season. They're 6-1 in such games.
Taz Tulowitzki, the 3-year-old son of Blue Jays shortstop Troy Tulowitzki, drew cheers and laughs in the clubhouse following the game as he showed off his ability to mimic the batting stances of different Blue Jays players.
Indians: OF Abraham Almonte left with a sore right shoulder after flying out to end the top of the second. He was replaced by Michael Martinez. Francona said Almonte is day-to-day. ... C Yan Gomes (illness) was replaced by Roberto Perez in the bottom of the third. Francona said Gomes was suffering from "intestinal turmoil."
Blue Jays: DH Kendrys Morales, who left Tuesday's game with a sore left hamstring, was held out of the starting lineup. Morales had an MRI Wednesday and has been diagnosed with a Grade 1 strain. He is day to day. ... Tulowitzki (right hamstring) hopes to begin a rehab assignment at Class A Dunedin this weekend and could rejoin the Blue Jays when they begin a series at Atlanta next Wednesday.
Indians: Cleveland is off Thursday before starting a three-game series against visiting Minnesota. RHP Josh Tomlin (2-3, 7.13) will have an extra day of rest before facing the Twins. Tomlin is 1-2 with a 9.95 ERA in three home starts.
Blue Jays: RHP Marco Estrada (1-2, 3.14) starts the opener of a four-game series against Seattle. Estrada matched a season worst by allowing five runs at Tampa Bay on May 6.
More AP baseball: https://apnews.com/tag/MLBbaseball