Harvick appeared in good shape to repeat his qualifying race victory of a year ago, until Kurt Busch gave Byron a shove with two of 60 laps remaining which powered him into the lead.
From there, Byron was able to hold off his Hendrick Motorsports teammate Jimmie Johnson as the rest the contenders spread out three-wide battling for position.
With the victory, Byron will claim the fourth starting position in Sunday’s 500, behind pole-sitter Ricky Stenhouse Jr. and Hendrick teammate Alex Bowman.
Kyle Larson finished third, Harvick ended up fourth and Cole Custer rounded out the top-five.
"There wasn't any Chevy orders or anything like that. We just did a good job of working together. Kurt was a great pusher and great helper. I really had a lot of trust in him," Byron said. "I was really trying to go with one to go, but I had enough momentum out of the tri‑oval. Watching the old races, that's where the momentum kind of lines up.
"I didn't know if I would get that kind of same momentum once everybody started pushing with one to go. Made it there, got to second. I guess Kevin played really nice and didn't pull a big block. Excited for the 500."
“Beat by numbers,” Harvick said over his team radio at the finish about the Chevys work to beat him.
Timmy Hill, who finished 16th, was the final driver from a final non-charter team to make the field for Sunday’s season opener.
Bowman, who started on the pole thanks to his second-place qualifying effort on Sunday, led the first five laps until Harvick got a push to the lead on Lap 6.
After 10 laps, Harvick remained out front with Matt DiBenedetto right behind him and Byron running in third.
On Lap 17, the outside lane got a good run, which allowed Bowman to move back into the lead.
By Lap 19, Erik Jones – the winner of the Busch Clash last weekend – had moved up to second, right behind Bowman.
Bowman led a group of Chevrolets to pit road on Lap 23 with Byron the first of the group off pit road.
Jones inherited the lead followed by Michael McDowell and Kyle Busch.
On Lap 31, Kyle Busch got around Jones to take the lead just as the Toyotas and Fords began preparations for their green-flag pit stops.
Those who had not pit, did so on Lap 34 with Harvick and Kyle Busch exiting pit road side-by-side.
Once all cars had pit, Harvick emerged as the leader on Lap 35.
With 20 laps remaining, Harvick continued to lead the way followed by Kyle Busch and DiBenedetto.
Corey LaJoie got into the back of J.J. Yeley on the backstretch on Lap 41 to bring out the first caution of the race. Yeley was one of the drivers trying to race his way into the Daytona 500 field.
— NASCAR (@NASCAR) February 14, 2020
Several drivers elected to pit during the caution for fresh tires with Larson the first of the group off pit road.
Harvick led the way on the restart on Lap 48 followed by Kyle Busch, DiBenedetto, David Ragan and Jones. Larson, the first to take tires, lined up sixth.
With five laps remaining in the race, Harvick continued to control the race, followed by DiBenedetto, Jones, Byron and Kurt Busch.
With two to go, the Chevrolets got together to run down Harvick and Byron moved into the lead.
Both Brennan Poole (engine change) and B.J. McLeod (transmission change) had to start the race from the rear of the field.