Takuma Sato made up for past heartbreak at Indianapolis Motor Speedway, passing Helio Castroneves with five laps to go to win his first Indy 500.

Sato earned team owner Michael Andretti his fifth Indy 500 win as a car owner. He has now won three of the last four Indy 500s.

"I'm in shock," Andretti told ABC. "In the end, we have great people on this team, and they're the ones that got this win. As well as Takuma. He drove unbelievable."

Sato's pass of Castroneves stood in sharp contrast to his finish in the 2012 Indianapolis. Racing leader Dario Franchitti on the final lap, he spun out. Franchitti got the win, and Sato was left with the one that got away.

The former Formula One driver made up for that Sunday with his second Verizon IndyCar Series victory.

"It's beautfiul. I grabbed something I left over in 2012," Sato told ABC.

Sato said he didn't worry about a repeat of that 2012 incident.

"Helio really drives fair. Really fair. I can trust him," Sato told ABC. "Hopefully the crowd enjoyed it."

While the race featured 35 lead changes and a record 15 different leaders, 11 cautions marred the action. The most spectacular incident came on lap 53 and involved Scott Dixon and Jay Howard. After Howard hit the outside wall, his car drifted down the track. Dixon plowed into Howard, and Dixon's car went airborne, flipping over sidefirst into the SAFER Barrier inside the track. Dixon's car tore down catch fencing, it landed cockpit first on the track before bouncing over onto its wheels. Castroneves' car passed under Dixon's car as it soared through the air.

Both Dixon and Howard quickly climbed from their cars and were checked and released by the infield medical center, although Dixon later returned to the medical center and left wearing a walking boot on his left ankle.

The incident brought out a lengthy red-flag period as track workers repaired the fence and barrier.

Dixon, a four-time IndyCar Series champion and the 2008 Indy 500 winner, had started the race on the pole, and was the heavy favorite to win.

"(I'm) a little beaten up," Dixon told ABC. "It was definitely a bit of a rough ride. … I'm glad everybody was OK. It was definitely a wild ride for sure."

The other notable crash came on a restart with 17 laps to go in a five-car incident sparked by Oriol Servia. He was running seventh at the time, despite being the biggest longshot in the race at 90-1 odds, according to Vegas Insider.

That set up the thrilling finish between Sato and Castroneves.

Here is the finishing order in the Indy 500:

1. Takuma Sato
2. Helio Castroneves
3. Ed Jones
4. Max Chilton
5. Tony Kanaan 
6. Juan Pablo Montoya
7. Alexander Rossi
8. Marco Andretti
9. Gabby Chaves
10. Carlos Munoz
11. Ed Carpenter
12. Graham Rahal
13. Mikhali Aleshin
14. Simon Pagenaud
15. Sebastain Saavedra
16. JR Hildebrand
17. Pippa Mann
18. Specer Pigot
19. Josef Newgarden
20. James Davison
21. Oriol Servia
22. James Hinchcliffe
23. Will Power
24. Fernando Alonso
25. Charlie Kimball
26. Zach Veach
27. Ryan Hunter-Reay
28. Sage Karam
29. Buddy Lazier
30. Conor Daly
31. Jack Harvey
32. Scott Dixon
33. Jay Howard