The Rays scored two runs on throwing errors and a third on a wild pitch before Ben Zobrist led off the bottom of the eighth with a solo homer that made it 7-all.
Upton led off the ninth with his first homer on a 3-2 pitch from Vizcaino (0-1), who signed with Cleveland on Thursday.
A night after building a 9-0 lead and holding off the Rays in the late innings for an 11-7 victory, the last-place Indians jumped out to another big advantage against left-hander Scott Kazmir.
Grady Sizemore opened the game with the 19th leadoff home run of his career, breaking a tie with Kenny Lofton for the most in Indians history. Shin-Soo Choo homered for the second straight game, hitting a two-run shot that made it 7-0 in the fourth.
Evan Longoria, Carlos Pena and Willy Aybar drove in runs in the comeback against Indians starter Anthony Reyes and relievers Tony Sipp, Jensen Lewis and Rafael Betancourt, who escaped a bases-loaded jam in the seventh only to give up Zobrist's tying homer in the eighth.
Dan Wheeler (1-0) pitched one inning to get the win.
Kazmir allowed seven runs and 10 hits in 3 1-3 innings - his shortest outing of the season. Since beating Boston and the New York Yankees in his first two starts, the 25-year-old left-hander has yielded 30 runs, 41 hits and 22 walks in his last 28 2-3 innings.
Reyes retired nine in a row before Upton doubled for Tampa Bay's first hit. The speedy center fielder stole third, giving the Rays at least one swipe in 17 consecutive games, and scored on Pena's RBI single.
The stolen base streak matches the longest in the AL since 1954. The 1976 Athletics and 2001 Yankees each swiped a base in 17 straight, while the longest stretch in the majors during that span is 29 by the 1985 Cardinals.