Todd Gilliland had made his way into the lead with two of 60 laps remaining and was running side-by-side with Almirola at the start of the final lap when he got hit from behind and dipped down on the apron.
The move sent cars scrambling, allowing Almirola and Cindric to escape out front and Almirola took the checkered flag by 0.122 seconds, giving Ford a sweep of both qualifying races.
Chase Elliott ended up third, Brad Keselowski was fourth and Corey LaJoie rounded out the top-five.
"We kind of went for it in qualifying and put the speed in the car, sacrificed some handling, and as you could see tonight it was a handful, but, man, this is so cool," Almirola said. "Daytona is such a special place to me. I've grew up sitting in those grandstands dreaming about racing here. I want that one on Sunday, though.
"My boss (Tony Stewart) up in the booth during that first Duel, he said, 'I've won this race three times, but yet to do it on Sunday.' I know Sunday is the big one. We're going to keep focused on that one. The job is not finished."
"So thankful. I'm not even supposed to be here. I'm supposed to be retired."
IndyCar Series driver Conor Daly claimed the final spot in the field for the 500, driving the No. 50 Chevrolet for The Money Team.
Despite the car having severe handling problems and Daly falling off the lead lap, the other two non-chartered teams entered wrecked out of the race. Daly took the final transfer spot despite finishing 17th and two laps down.
By posting the second-fastest speed in Wednesday night’s Daytona 500 qualifying session, Kyle Larson started the second qualifying race from the pole.
By Lap 2, Almirola had made his way around Larson to take the lead.
Larson got back out front on Lap 5 as Almirola dropped to second and Chase Briscoe moved to third.
NASCAR was forced to display a caution on Lap 6 as the side window from Justin Haley’s No. 31 Chevrolet came loose and dropped on the backstretch.
All of the drivers took the opportunity to pit with Almirola first off pit road. The race returned to green on Lap 11 with Almirola out front, followed by Larson, Cindric and Kyle Busch.
Busch gave Larson a big push on the restart to send him back into the lead.
Larson and Busch raced side-by-side through Laps 12 and 13 with Larson finally pulling away on Lap 14.
Busch moved back out front on Lap 15 as Daniel Suarez moved into second and Ryan Preece ran third.
At the halfway mark, Busch continued to lead followed by Suarez and Larson. There was discussion whether some cars would have enough fuel to make it to the end if there was not another caution.
On Lap 41, Suarez got into the back of Busch and sent his No. 8 Chevrolet into the wall which collected several others. Among those involved were Austin Hill, Harrison Burton, Riley Herbst and Travis Pastrana.
With the cars of both Hill and Pastrana ending up in the garage, the final transfer spot for the Daytona 500 was claimed by Daly.
The field elected to pit under the caution with Larson the first off pit road. The race returned to green on Lap 47 with Larson out front followed by Almirola and Keselowski.
Almirola got around Larson on Lap 49 to reclaim the lead as Cindric moved into third.
Cindric received a shove from Gilliland to move out front with four laps remaining.
With two laps remaining, Gilliland got around Cindric for the lead as Almirola moved into second.
B.J. McLeod had to start from the rear of the field due to unapproved adjustments in pre-race (steering change).