Just as green-flag pit stops wrapped up on Lap 146 of 160, Elliott got around Harvick and was able to stay out front the final 14 laps to earn his second stage win of 2019.
Erik Jones finished third, Alex Bowman fourth and Ricky Stenhouse Jr. completed the top-five.
Also collecting stage points were Chris Buescher, Kurt Busch, Clint Bowyer, Kyle Busch and Kyle Larson.
Following the break between Stages 1 and 2, all of the lead-lap cars elected to pit with Kurt Busch the first off pit road thanks to a two-tire pit stop.
The race restarted on Lap 87 with Busch out front, followed by Harvick, Stenhouse, Jones and Bowyer.
On Lap 92, Harvick went low into Turn 1 and came out with the lead in Turn 2. On Lap 95, Elliott moved into the runner-up position.
With 60 laps remaining in the second stage, Harvick maintained a little more than 1-second lead over Elliott with Kurt Busch holding in third.
With under 40 laps to go, a round of green-flag pit stops began with Martin Truex Jr. one of the first to dive down pit road.
Ten cars had still yet to pit with 25 laps remaining in the stage. At this point, Harvick would likely cycle back to the front once everyone had pit.
With 17 to go, Truex got into the back of Daniel Suarez, who had slowed down to make his green-flag pit stop. Suarez was still able to complete his stop.
Once the cycle of stops were completed on Lap 146, Elliott had made his way around Harvick to take the lead.
“I just plow off of (Turn) 2 now. I’m turning right getting in,” Harvick said over his team radio. “Definitely put everything back and try something else, because this is bad.”
With 10 laps remaining in the stage, Elliott had built up almost a 1-second lead over Harvick. Jones ran third, Bowman fourth and Buescher was fifth.
Elliott’s lead was up to 1.5 seconds with five laps to go.