Marcus Ericsson took his first victory in racing since he won the GP2 race at the Nürburgring 2013.
After five seasons in Formula 1, Ericsson was close to winning one of the races in Detroit 2019 during its first season in indycar.
It ended up in second place.
Until today, his only podium place in the series.
Ericsson has been questioned and has long struggled with poor qualifying runs.
In Detroit, Ericsson started from 15th position and worked steadily upwards and got everything in line with the team's strategy.
Before the final restart after the Frenchman Romain Grosjean put the car in the wall, Ericsson bet everything on one card and managed to keep the second Rinus Veekay, the Netherlands, behind him.
Pato O´Ward, Mexico finished third.
- It feels like I was a little guy when I last won.
I had good self-confidence with me into this weekend.
I want to thank the team for a really good job, said Ericsson who was congratulated by team manager Chip Ganassi in the winner's circle.
Dramatic race - Rosenqvist crashed
At the other end of the depot, a furious Will Power was interviewed.
The Australian criticized the race management for not having time to cool down an overheated control unit in connection with the last red flag.
- I tore like an animal today.
There's so much money in this and so I go there on a bad decision.
I'm so pissed, Power said.
The race on the island of Belle Isle in Detroit was highly dramatic with two red flags.
The first came after Felix Rosenqvist's nasty crash on the 25th lap.
Felix got a gas suspension on his car and thundered straight into the concrete barrier.
Thanks to the tire stack, the bang was somewhat dampened.
Rosenqvist was conscious all the time and was taken to a nearby local hospital for examination.
He complained of pain in his back, neck and ribs, according to Viasat Motor.
It is currently unclear whether Felix will start in Sunday's race.
Marcus Ericsson became the third Swede to win a race in indycar.
Kenny Bräck took four victories in the Indy Racing League and five in the Champ Car (previously two organizations).
Felix Rosenqvist won a race during last year's indycar series.