Bowyer was leading when his tank ran dry with two laps remaining, allowing Stewart to grab the top position and follow up last week's victory at Chicagoland Speedway with another win.
The two-time Sprint Cup Series champion notched his second triumph of the season and the 41st of his career.
With the win, Stewart took over the points lead of the Chase, forging a seven-point advantage over Kevin Harvick, who finished 12th Sunday.
Keselowski, who came in second in New Hampshire, is 11 points behind.
NBC reportedly holds celebs hostage to Jimmy Fallon's show
Aaron Carter is still in love with Hilary Duff