David Villa recorded his first Major League Soccer hat trick to help New York City FC beat the New York Red Bulls 3-2 on Sunday night.
With the game level in the the 75th minute, Villa scored his third goal from the penalty spot after drawing a foul in the area and then converting from the spot.
Villa had opened the scoring in the 28th, beating a charging Luis Robles and tapping a left-footer into the open net.
Bradley Wright-Phillips took a Sean Davis pass, cut left and scored from top of the box in 41st minute to equalise, then rolled in a perfectly placed cross from Tyler Adams from just outside the six-yard box to give the Red Bulls a 2-1 lead in the 64th.
Villa tied it in the 72nd minute, racing down the right side, cutting back to evade a defender and blasting it inside the near post, before completing his hat trick three minutes later.
Sal Zizzo was shown a yellow card for a high boot in conceding the penalty, then was sent off for a second booking in the 90th minute and will miss Saturday's match against Orlando City.
The Red Bulls had their four-game win streak snapped. Wright-Phillips now has 10 goals in eight career games against NYCFC.
Video assistant referee was in play as the Portland Timbers beat the LA Galaxy 3-1.
Portland wasted no time getting on the scoreboard, with Liam Ridgewell heading home at the back post from a David Guzman corner that had skipped through the LA six-yard box.
But the visitors struck back just one minute later when Emmanuel Boateng, who latched on to a perfect Joao Pedro through ball, squared and finished past Jake Gleeson to make it 1-1.
The Galaxy looked to be ahead in the 12th minute after Gyasi Zardes poked home from close range, but the goal was waved off after video review, in play for the first time in MLS history this weekend.
And Portland would retake the lead in the 33rd minute, with Diego Valeri settling a long pass from Roy Miller, cutting to his right and firing an unstoppable shot from 30 yards away past Brian Rowe.
Fanendo Adi's slick back-heel set up Portland's third early in the second half, with Alvas Powell smashing home the finish past Rowe to make it 3-1 in favor of the hosts.
However, Adi came up reaching for his hamstring after the play and was immediately substituted off in the 56th minute.
Shortly after, Jonathan dos Santos -- the Galaxy's recent designated player signing -- made his first appearance for the team, coming on for Jack McInerney in the 63rd minute.
Jonathan was unable to inspire a comeback, though, as Portland closed up shop in the back and saw out the match to jump back into the playoff places in the Western Conference.
Jacob Peterson scored in stoppage time to lift Atlanta United to a 1-1 draw against his former club Sporting Kansas City.
Peterson, who came on for Julian Gressel in the 67th minute, ran onto a loose ball -- after an attempted clearance by Matt Besler was deflected into the center of the box -- and blasted a left-footer past a sliding Tim Melia into the net in the first minute of injury time.
Benny Feilhaber came on at halftime and, after Latif Blessing drew a penalty against Leandro Pirez, and converted from the spot to give Sporting Kansas City a 1-0 lead in the 59th minute.
Atlanta had just seven shots overall and didn't have a single one on goal in the first half.
Kansas City is unbeaten in its last nine MLS matches -- though seven of them have been draws -- dating back to a 1-0 loss at Colorado on May 27.