The former IndyCar champion captured the crown jewel of North American motor racing in his 12th attempt to complete his resume, taking the checkered flag under caution after defending champion Dario Franchitti crashed with just over two laps to go.
"This is it man, I made it," Kanaan said before he dumped the traditional winner's bottle of milk over his head. "Finally I am going to put my ugly face on that trophy."
Colombia's Carlos Munoz crossed the finish line second in his IndyCar racing debut followed by American Ryan Hunter-Reay.
Marco Andretti, grandson of former Formula One champion and Indy 500 winner Mario Andretti, finished fourth in a furious and frenetic race that featured a record 68 lead changes, double the previous mark set in 2012.
One of IndyCar's most popular figures, Kanaan had known nothing but bad luck at the sprawling 2.5 mile oval speedway, coming close but never able to reach Victory Lane.
Kanaan's luck, however, changed when he received a package four days before the race containing a good luck charm he had given to a young girl nine years ago just before she was about to undergo brain surgery.
The woman, now 24 years old and healthy, returned the charm back to Kanaan along with a note that read: "Here's your good luck charm back. Now you take it and win the Indianapolis 500."
As Kanaan drove his Dallara-Chevy into a packed Victory Lane he pulled the medal out of his race suit and held it high before he was mobbed by team mates and friends, including former series champion Alex Zanardi.
Kanaan, who ran at or near the front most of the afternoon, holding the lead 15 times, was sitting second behind Hunter-Reay with six laps left when a caution flag came out after Graham Rahal slammed into the wall.
On the restart, Kanaan blew past Hunter-Reay when his luck took a dramatic change as Franchitti's crash further back in the field brought out the yellow, allowing the 38-year-old Brazilian to coast unchallenged to the checkered flag.
"I have to say, the last lap was the longest lap of my life. I wanted the pace car to hurry up so bad," said Kanaan. "I got a little bit of luck today."
Zanardi, who had both legs amputated above the knee after crashing in a 2001 race, also brought Kanaan some luck, turning over the gold medal he won at the 2012 London Paralympics in hopes that some his good fortune would rub off on his friend.
"Alex Zanardi gave us some luck today. He gave us his gold medal from London and told us, 'Rub this all over the car,'" said Kanaan's team owner Jimmy Vasser. "Tony took the medal to his motorhome with him for an hour."
The day began under dreary, grey skies but the race got off to an uplifting start as runners who were unable to finish last month's Boston Marathon were given a chance to symbolically complete the distance.
The runners were unable to finish the Boston Marathon as the race was halted when two bombs left at the finish line exploded, killing three people and injuring 264 others.
A massive crowd packed in the home straightaway grandstands stood and cheered as runners, who started at Turn Four and finished on the front stretch, crossed one of the most famous finish lines in all of sport - the Yard of Bricks.
The crowd, estimated at close to 250,000, was back on its feet a few minutes later when drivers were given the command to start their engines and pole sitter Ed Carpenter led the 33-car field into the first turn of the 200-lap race.
Carpenter, IndyCar's only owner driver, set the pace until the first caution came out on the fourth lap when JR Hildebrand, who famously crashed in the final turn while leading the 2011 Indy 500, spun into the wall bringing out the yellow flag.
The day featured just five cautions and the low number of yellow flags helped make it the fastest Indy 500 ever with Kanaan posting an average speed of 187.433 mph.