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.
Reindeer recovered after escaping from Santa during lighting ceremony
Ukrainian protestors topple Lenin statue [VIDEO]