Envision Racing driver Cassidy judged the energy-saving requirements of the high-speed Oregon venue to perfection as he beat Andretti man Jake Dennis at the end of the 32-lap contest by 0.294 seconds.
It puts Cassidy within a single point of championship leader Dennis with four races to go this season.
Antonio Felix da Costa completed the podium for Porsche, having diced with Cassidy for the lead in the closing stages.
The early stages of the Portland race were, as expected, characterised by extreme energy-saving, with drivers lapping some 10 to 12 seconds off the pace displayed in qualifying in a bid to keep enough power for the finish.
Dennis led the early laps from pole, with Cassidy one of the big early movers from 10th on the grid, the Kiwi briefly taking over at the front before dropping back with his first attack mode activation.
That put Nissan driver Norman Nato at the head of the field when the first of two safety car periods were deployed for Mahindra's Roberto Merhi coming to a stop on track at Turn 7.
Nato stayed in the lead on the restart, but conceded it to Cassidy just before a second caution was called, this time for a high-speed crash on the back stretch for Nico Muller - who told his Abt team he "had no brakes" in the moments leading up to the impact.
The two safety car periods led to four laps being added to the original 28-lap distance, and it was Cassidy that continued to lead, the pace slowing even more in the early laps of the restart in anticipation of the extra distance.
Da Costa had climbed to second on the first lap of the restart, and the Portuguese driver significantly upped the pace on lap 22, with the field finally starting to string out at this stage.
However, da Costa couldn't shake Cassidy, who retook the lead on lap 26, with Dennis moving up to third before going on the attack against da Costa.
After resisting Dennis, da Costa briefly got the better of Cassidy on lap 29, only to lose the advantage next time round, with the Envision driver eking out a small advantage as the race entered its closing stages.
Dennis repassed da Costa for second on the final lap, and looked to have a small energy advantage over Cassidy, but he ran out of time to seriously threaten the leader, who scored a third win in five races following his successes in Berlin and Monaco.
Second place marked a fifth podium in succession for Dennis, while third for da Costa marked his first top-three result since his win in Cape Town.
Jaguar's Mitch Evans recovered from P20 on the grid following a change of battery and powertrain that left him unable to run in qualifying to come fourth and keep his slim title hopes alive, with Cassidy's Envision team-mate Sebastien Buemi completing the top five.
Jakarta winner Maximilian Gunther was sixth for Maserati MSG, having featured in the leading group for most of the race, followed by the second Jaguar of Sam Bird and Mahindra's Lucas di Grassi.
Pascal Wehrlein, who had led the points prior to Dennis scoring pole, was a disappointing ninth in the second works Porsche, leaving him 18 points adrift in the championship battle.
Nato picked up the final point in a disappointing race for Nissan, with Sacha Fenestraz losing any chance of a top result early on when he hit the back of his team-mate and damaged his front wing, forcing him into the pits for a change of nose.
DS Penske failed to get either of its cars in the points after Jean-Eric Vergne and Stoffel Vandoorne were forced to start from the pitlane as a result of the team using illegal scanning equipment in the pits during practice.
UPDATE: Bird was handed a five-second penalty for forcing another driver off the track, dropping him down to 17th place.
Di Grassi was promoted to seventh ahead of Wehrlein, Nato, while Abt driver Robin Frijns inherited the final point.
Formula E Portland E-Prix - race results (32 laps):
Cla | Driver | Team | Gap | Interval |
---|---|---|---|---|
1 | Nick Cassidy | Envision Racing | ||
2 | Jake Dennis | Andretti Autosport | 0.294 | 0.294 |
3 | Antonio Felix da Costa | Porsche Team | 1.140 | 0.846 |
4 | Mitch Evans | Jaguar Racing | 1.758 | 0.618 |
5 | Sébastien Buemi | Envision Racing | 2.220 | 0.462 |
6 | Maximilian Gunther | Maserati Racing | 2.307 | 0.087 |
7 | Lucas di Grassi | Mahindra Racing | 2.982 | 0.675 |
8 | Pascal Wehrlein | Porsche Team | 3.684 | 0.702 |
9 | Norman Nato | Nissan e.Dams | 3.961 | 0.277 |
10 | Robin Frijns | Team Abt | 4.300 | 0.339 |
11 | Jean-Eric Vergne | DS Penske | 4.718 | 0.418 |
12 | Stoffel Vandoorne | DS Penske | 4.982 | 0.264 |
13 | Dan Ticktum | NIO Formula E Team | 5.470 | 0.488 |
14 | René Rast | McLaren | 6.115 | 0.645 |
15 | Sacha Fenestraz | Nissan e.Dams | 6.699 | 0.584 |
16 | Sergio Sette Camara | NIO Formula E Team | 7.167 | 0.468 |
17 | Sam Bird | Jaguar Racing | 7.638 | 0.471 |
18 | Jake Hughes | McLaren | 12.977 | 5.339 |
19 | Andre Lotterer | Andretti Autosport | 16.051 | 3.074 |
Edoardo Mortara | Maserati Racing | 3 Laps | 3 Laps | |
Nico Müller | Team Abt | 23 Laps | 20 Laps | |
Roberto Merhi | Mahindra Racing | 29 Laps | 6 Laps | |
View full results |