HOUSTON (AP) — Andrew Benintendi charged in hard and left his feet.
Make the catch, Boston wins.
If not ... no telling.
On this night, though, even a ball the Red Sox didn't grab went their way.
"I thought I could catch it and timed it up well," Benintendi said. "At that point, it was either do or die."
Boosted by a questionable fan interference call and another home run from Jackie Bradley Jr. in a gripping, back-and-forth game, the Red Sox moved within one victory of their first World Series trip since winning the 2013 title.
Craig Kimbrel earned a shaky six-out save, helped by a rocket throw from right fielder Mookie Betts and Benintendi's daring grab of Alex Bregman's sinking liner. Had the ball scooted past Benintendi, it easily could have scored three runs and won the game for Houston.
"Beni took a shot. Had a great jump. And he got it," Boston manager Alex Cora said.
With that, the Red Sox improved to 4-0 on the road in these playoffs and inched closer to eliminating the defending World Series champions.
"This game was incredibly good on both sides — great at-bats, great plays," Astros manager AJ Hinch said. "The difference in that game literally was a couple inches."
Game 5 is Thursday night in Houston, where ace Justin Verlander will pitch for the Astros with their season on the line. David Price, who was warming up in the bullpen late in Game 4, will start for Boston on three days' rest after Chris Sale was ruled out Wednesday while recovering from a stomach illness.
Bradley hit a go-ahead homer in the sixth inning, his latest huge swing for a Red Sox team that got knocked out of last year's playoffs by Houston in the Division Series.
Boston has won three straight after a Game 1 loss, and this one came with some controversy.
Astros star Jose Altuve was denied a potential two-run homer in the first inning and called out after fans reaching for the ball interfered with Betts' attempt at a leaping catch.
"Jose pays the biggest price, because the trajectory of the ball looked like it was going to leave the ballpark," Hinch said. "Changed that whole inning."
Boston trailed by one with two outs in the sixth when Christian Vazquez doubled to deep right-center. Center fielder George Springer nearly made a jumping grab, but the ball glanced off his glove.
Bradley, who hit a grand slam in Game 3 and a three-run double in Game 2, put the Red Sox on top 6-5 with his soaring shot to right field on the next pitch from rookie Josh James.
"I'm very proud of him, what he's done in the second part of the season and what he's done tonight and in this series. It's amazing," Cora said about Bradley.
Boston got some insurance in the seventh when Lance McCullers walked in a run after taking over for Ryan Pressly with the bases loaded and two outs. J.D. Martinez added an RBI single in the eighth.
Houston cut the margin to two on an RBI groundout by Altuve in the eighth. Right fielder Josh Reddick made a diving catch of Betts' liner with the bases loaded to end the top of the ninth.
Red Sox starter Rick Porcello allowed seven hits and four runs over four innings in a wild game that took 4 hours, 33 minutes. Joe Kelly was the winner after giving up a run in the fifth.
Rafael Devers and Xander Bogaerts had two RBIs apiece for the Red Sox, who have outscored their opponents 36-12 on the road this postseason.
Houston's Carlos Correa, who has struggled with back problems for months, had three hits and two RBIs for his first multihit game this postseason. Springer and Tony Kemp each hit a solo homer for the Astros, who left 13 runners on base.
A rusty Charlie Morton gave up three hits, three runs and two walks in just 2 1/3 innings. He also threw two wild pitches in his first outing for the Astros since the regular-season finale on Sept. 30.
James took over and yielded three runs while striking out five in 3 2/3 innings during his second postseason appearance.
Devers' two-run single gave the Red Sox two runs in the first inning for the third straight game.
The disputed call came in the bottom of the inning when umpires ruled a fan interfered with Betts as he tried to snag Altuve's drive above the right-field wall.
"I'm 100 percent positive I was going to be able to catch that one," Betts said. "I jumped and went over, reached my hand up, I felt like somebody was kind of pushing my glove out of the way or something."
Crew chief Joe West, working the right-field line, signaled fan interference after the ball ricocheted back onto the field.
"The spectator reached out of the stands and hit him over the playing field and closed his glove," West said. "That's why I called spectator interference."
The call stood after a replay review that lasted 3 minutes, 13 seconds.
"The replay official said I was right," West explained. "That's all. He said I have nothing that can change it."
Altuve was ruled out and Springer was sent back to first base.
Cora, for one, wasn't surprised.
"Joe calls it right away and I saw the replay," he said. "And I said, no way they're going to overturn this. I was pretty sure."
Altuve was disappointed with the call but not mad at the fan.
"I don't have anything against him," he said. "He's another Astros fan rooting for us. Appreciate he was trying to help me."
Kemp gave Houston its first lead at 4-3 in the fourth when he knocked a slider from Porcello over the wall in the right-field corner.
Benintendi's second double came in the fifth and he scored on a two-out single by Bogaerts to tie it at 4.
Correa's run-scoring single made it 5-4 in the bottom of the inning.