Christian Pulisic scored late in the first half and early in the second, Ricardo Pepi added a late goal and the United States beat Mexico 3-0 on Thursday night to reach the CONCACAF Nations League final against Canada.
Pulisic, who was making his first start for club or country since April 15, put the U.S. ahead in the 37th minute and doubled the lead in the 46th. He has 25 goals in 59 international appearances, including four goals against Mexico. Pepi scored in the 79th, five minutes after entering.
The U.S, and Mexico each finished with nine players after Weston McKennie, Sergiño Dest, César Montes and Gerardo Arteaga received red cards in a testy second half that included play being stopped in the 90th minute by Salvadoran referee Iván Barton because of anti-gay chants from the crowd.
Play resumed, but so did the chants, and Barton ended the match in the eighth minute of 12 scheduled minutes of stoppage time.
McKennie and Dest will be suspended for Sunday's final after picking up the red cards.
"I'm upset, the game didn't need to turn into this," said Pulisic. "We don't expect this to happen anymore. Now we are missing two good players for the final."
With its first three-goal victory over Mexico in 23 years, the U.S. stretched its unbeaten streak against El Tri to six (three wins, three draws), matching the Americans' longest, from 2011-15.
B.J. Callaghan coached his first game as the second U.S. interim coach after Anthony Hudson quit to join a Qatari club. Shortly before the game, news broke that the U.S. was set to rehire Gregg Berhalter as its permanent manager.
Folarin Balogun made his debut, starting at forward after the 21-year-old decided to play for the U.S. over England and Nigeria.
The U.S. went ahead when Giovanni Reyna poked the ball off Montes and then while prone, poked it forward off Jorge Sánchez. Pulisic burst behind the defenders, took a pair of touches and from the edge of the 6-yard box slotted the ball past goalkeeper Guillermo Ochoa.
"We struggled a lot with the ball, things didn't go well at all, it's a loss that hurts us," said Mexico's Ochoa. "We feel sorry for the fans. This is the beginning of a process and we have to learn from this."
McKennie started the move for the second goal with a long pass down a flank to Timothy Weah, who put in a cross. A sprinting Pulisic got behind Israel Reyes and Sánchez, stabbing the ball in with his left foot from 6 yards,
Montes was given a straight red card in the 69th for kicking Balogun while the two were battling for the ball. McKennie was given a red card two minutes later for placing a hand on Sánchez's neck during the ensuing argument and for shoving.
Pepi scored his seventh international goal, taking a pass from Dest, taking a touch and rounding Ochoa. Dest and Arteaga were sent off in the 86th for hitting one another above the neck.
Reyna, his hair dyed blond, made his first start for club or country since March 27, also the last time Dest and goalkeeper Matt Turner had appeared in any match.
Canada beat Panama 2-0 in the opener on goals by Jonathan David in the 25th and Alphonso Davies in the 69th. Mexico and Panama meet in the third-place match.