After Evan Longoria hit a two-run homer in the top of the ninth for a 6-4 lead, Grant Balfour allowed a leadoff double to Alejandro De Aza and walked three batters as the White Sox scored one run to get within 6-5.
"I probably pitched away from contact a bit -- not getting my breaking balls over and getting in bad counts and walking guys," Balfour said. "I got to be more aggressive. You can't put three guys on."
Maddon echoed that sentiment.
"Reluctant is a good word," he said, describing Balfour's performance. "Way too many sliders, not enough of his challenging type of an attitude, not enough fastballs. I'd just like to see him be more aggressive with the fastball."
The Rays challenged a potential game-ending play before Abreu came to the plate. With one out and the bases loaded, Adam Eaton grounded into a fielder's choice at second. The Rays tried to turn a double play to end the game, but Eaton was called safe at first, allowing De Aza to score and pull Chicago within 6-5. Had Eaton been ruled out, the game would have been over.
Rays manager Joe Maddon requested an umpire review, but the call was confirmed.
"I just had to give it a shot," Maddon said. "Who knows?"
Following a walk by Marcus Semien, Abreu hit his walk-off grand slam. Abreu, who homered earlier in the game, finished 3-of-5 with two home runs and six RBIs.
"Not too many guys do that -- that have the ability to hit balls out to right field, and that's one a line, too," White Sox manager Robin Ventura said. "It could have been a line drive right at the guy, but he's strong enough to get it over the fence."
With nine home runs, Abreu set the Major League rookie record for most home runs before the end of April.
"It's just something amazing," Abreu said. "God is the one who gives me the strength to do this, and it's just amazing to be involved in this situation."
Longoria's home run, his third of the season, came off Matt Lindstrom and traveled 415 feet. It was also the Rays' first runs since a four-run second, despite threatening to score throughout the game.
Tampa Bay went 1-2-3 in the first inning but batted around in the second. Seven Rays reached base -- including six with two outs -- as Tampa Bay scored four runs, all earned, off White Sox starter Erik Johnson, who exited with two outs in the second. Johnson allowed consecutive RBI hits to Yunel Escobar, Ryan Hanigan and Ben Zobrist before walking Desmond Jennings and Matt Joyce, whose base on balls plated Hanigan.
Longoria, who led off the inning with a single to right, grounded out to end the four-run frame.
Johnson allowed four runs on four hits and waked four in 1 2/3 innings. He threw 60 pitches -- 32 for strikes -- and had one strikeout and one wild pitch.
The Rays had several chances to add on, but stranded nine runners over the next four innings. Their most promising chances came in the fourth and fifth, but Longoria and Hanigan ended each inning, respectively, with a double play, stranding a combined five runners. The Rays stranded two more in the sixth and grounded into four double plays.
"We had so many chances to score many more runs and did not," Maddon said. "We played a really good game otherwise. We just didn't get runs when we needed to."
Chris Archer fell short in his bid to win consecutive starts. He struggled against Abreu, who had an RBI single in the first and a 409-foot home run to straightaway center in the third, in addition to his ninth-inning heroics.
Archer then worked himself into a bases-loaded, no-outs jam in the fourth, with Tyler Flowers lining the first offering to center for a two-run single that tied the game at 4.
"They just feel like they can always come back," Ventura said. "[Being] able to come through is big, too, but you've got to give yourself an opportunity, and these guys -- they just keep grinding out at-bats. It's fun to watch."
The next batter, Gordon Beckham, missed a three-run homer by about two feet, but Archer got out of the jam with a 1-5-2-4-6 double play, in which Flowers and Alejandro De Aza were tagged out on either side of third base.
Archer allowed four runs on nine hits in 6-plus innings, finished with four strikeouts and did not walk a batter. He has pitched at least six innings in four of his five starts this season and threw 101 pitches on Friday -- his first time crossing the century mark this year.
"Going six innings doesn't ever really feel like an accomplishment to me," Archer said. "I expect much more out of myself. I was happy with what I did, but I'm never going to think that six innings and four runs is an accomplishment."
Eight of Tampa Bay's nine starters had at least one hit. The only one who didn't, Matt Joyce, set a franchise record with five walks.
"I just didn't get a lot of pitches to hit," Joyce said. "You're always going to take your walks." Tampa Bay finished with 11 walks overall to tie the franchise record for a nine-inning game.
Jake Petricka and Zach Putnam each pitched 2 2/3 innings of relief for the White Sox. They allowed five hits and five walks, but zero runs. Chicago's bullpen pitched 6 1/3 scoreless innings before Longoria's blast.
"That's a tough loss for us for sure," Joyce said. "We had that game in hand. But you know what? That's the game. It's going to happen over the course of the year. We're just looking at it like we're getting it out of the way now and we'll come back tomorrow and bounce back."