Cabrera made a one-hop throw from left field to get Carlos Santana at the plate to end the eighth inning, preserving Toronto's one-run lead.
''That was just heroic, is what that was,'' a grateful Dickey said. ''It saved the game.''
Catcher Josh Thole said Cabrera's throw was ''right on the money.''
''It was down the third base line so it made it easier for me,'' Thole said. ''Had it been anywhere else it would have been a bit of a tougher play. Melky knows that and he's just that good of a player to be able to do that.''
Santana said he had to alter his slide because Yan Gomes' bat was on the ground, just outside the batter's box.
''Melky made a great throw and the bat was in the middle,'' Santana said. ''I tried to go inside.''
Dickey (4-3) allowed two earned runs and four hits in six-plus innings. He walked two and struck out six.
''I had some good changeups tonight, a swing-and-miss knuckleball,'' Dickey said.
Casey Janssen, activated off the disabled list Sunday, finished for his first save.
''It's definitely good to have him back,'' Blue Jays manager John Gibbons said.
Justin Masterson (2-2) matched a season high by allowing five runs and six hits in 5 1-3 innings.
Dickey set down the first eight batters before the Indians opened the scoring in the third. Mike Aviles singled, Michael Bourn walked and Nick Swisher hit an RBI single that dropped just in front of a charging Jose Bautista in right.
Gibbons came out to argue the call by first base umpire Jerry Meals that Bautista had trapped the ball, but didn't challenge it.
Masterson was perfect through three innings before giving a leadoff triple to Jose Reyes in the fourth. Cabrera followed with a sacrifice fly to the warning track in center.
Francisco put the Blue Jays in front with a one-out homer in the fifth, a drive into the second deck.
Toronto chased Masterson and added three more runs in the sixth. Adam Lind hit a two-run double and scored on Francisco's double.
''He got a couple of balls up that they stayed on pretty well,'' Indians manager Terry Francona said.
Josh Outman came on after Masterson walked Brett Lawrie but got out of it by retiring Josh Thole on a grounder and striking out Kevin Pillar.
Cleveland closed to within one with a three-run seventh. Asdrubal Cabrera singled, David Murphy reached on a fielding error by Lawrie at second base and Yan Gomes walked to load the bases before Dickey hit Lonnie Chisenhall with the first pitch.
Aaron Loup relieved and got Aviles to fly out, but Bourn hit an RBI single and Swisher added a sacrifice fly. Michael Brantley lined out to end the inning.
''We just couldn't get one big hit,'' Francona said.
Santana singled off Brett Cecil to begin the eighth and advanced on a passed ball. Asdrubal Cabrera and Murphy struck out before Gomes lined a single to left, setting the stage for Cabrera's inning-ending assist.
NOTES: Francona has been added to John Farrell's staff for the All-Star game. Minnesota's Ron Gardenhire will also assist Farrell. ... Bautista was called out on strikes after his request for time was not granted by plate umpire Jordan Baker in the seventh. Bautista backed out as John Axford threw a strike. ... Reyes returned to the lineup after getting the day off Monday. ... Toronto OF Colby Rasmus, who left Monday's game after six innings with a tight right hamstring, did not start. Gibbons said he hopes Rasmus will be ready to return after two days off. ... The Blue Jays recalled Pillar from Triple-A Buffalo and optioned INF Jonathan Diaz to Triple-A. ... Toronto has hit at least one homer in 17 of 19 home games this season. ... Cleveland has lost nine of 11 on the road. ... Indians RH Corey Kluber (3-3) faces Blue Jays RH Dustin McGowan (2-1) on Wednesday.