Fanendo Adi's first-half brace helped the Portland Timbers to all three points as Real Salt Lake slipped to their first home defeat since this season.
The 23-year-old netted his third and fourth goals in Major League Soccer to turn the game on its head following Luke Mulholland's opener. Tony Beltran then saw red for the Royals, before Will Johnson completed the scoring.
RSL had last lost in the MLS at the Rio Tinto Stadium against the San Jose Earthquakes on September 21 - a run of ten matches that included a 4-2 play-off win over Portland.
A thrilling first half ebbed and flowed with chances at both ends, the first falling Real’s way.
Javier Morales dug out a cross from the right and Nat Borchers launched himself at the ball, heading just wide.
An almost identical attack at the other end saw Jorge Villafana create for Diego Valeri – his header forcing Jeff Attinella into a low stop.
Then it was Donovan Ricketts’ turn to show his athleticism, as he palmed over Luis Gil’s shot. But from the corner that followed he was left helpless, as Mulholland controlled at the back-post and slotted past the static goalkeeper.
The 28th minute saw a return to form for the Jamaican though, beating away Olmes Garcia’s powerful drive after some neat work in the Claret and Cobalt attack.
With their backs seemingly against the wall, the Timbers found an equaliser.
Valeri delivered a corner from the left and Adi brushed off a home defender before stooping to head past Attinella.
The visitors put together a sustained spell of pressure, and the Royals stopper had to tip Adi’s pile-driver around the post, then make an impressive near-post stop from Valeri.
Again though, the hosts came forward, and Ricketts had to make his best stop yet from Mullholland. The goal-scorer sent a curler towards the top corner from long range that required last year’s Goalkeeper of the Year to tip over at full stretch.
But before half-time, Adi had his second. A Portland counter-attack worked its way to Darlington Nagbe. His effort was saved, but the rebound deflected into the big Nigerian’s path, and he coolly slammed home from close range.
RSL’s hopes of fighting back after the break were dealt a blow in the 54th minute, when Beltran received the second of a quick-fire pair of bookings for a scythe on Nagbe.
And after a spell of scrappy play, the Timbers made the game safe from the penalty spot.
Substitute Steve Zakuani slipped Valeri in on the overlap, and when he tried to square for Adi, Chris Schuler blocked with his arm. Though the loan forward had the chance to bag a hat-trick, Johnson took the penalty and finished it with ease.
Nagbe should have got his goal with nine minutes left, but the Liberian couldn’t find a way past Attinella when clean through.
Adi was denied the opportunity to get a third with an 89th-minute withdrawal, but it made no difference to the result as Portland ran out comfortable winners.