It hasn’t always been pretty, but for the second-straight time, the U.S. Men’s National Team will be playing for a continental title.

Christian Pulisic scored a brace and Weston McKennie had a goal and an assist as the USMNT defeated Jamaica, 3-1, Wednesday evening in Nashville to advance to the 2019 Gold Cup final. The U.S. will face Mexico in the Gold Cup final on Sunday evening in Chicago.

[READ: All the latest USMNT News and Notes]

The semifinal, which started at 8:30 p.m. locally, didn’t finish until around midnight, local time, after the game was delayed for 90 minutes after 17 minutes of action due to severe weather in the area. The game resumed at around 10:20 p.m. local time and continued, despite lightning strikes continuing in the central Tennessee region.

Whether due to the uneven performance against Curacao or the fact that his main starting XI was about to play its third game in a week, Berhalter opted to make a few changes, and two of the changes, Jozy Altidore and Reggie Cannon, played instrumental roles in the opening goal.

Both Jamaica and the U.S. looked lively to start the match, but it was the USMNT which would hit first in the ninth minute. Michael Bradley spotted Cannon making a run down right wing and drilled a 40-yard pass on the money to Cannon in stride. Cannon one-touch crossed it into the box, which seemed to take Jamaica by surprise. Altidore held off Michael Hector, which allowed McKennie to ghost into the box, take a touch to control and fire past star Jamaica goalkeeper Andre Blake.

The match really lacked a rhythm after the long delay and it took until the next halftime break for both teams to begin to look their normal selves.

It only took until the 52nd minute for the USMNT to double the lead. The American attackers, which floated across the front three and caused a lot of problems for the Jamaican defense, opened space that Jordan Morris took advantage of. Right in the midfield circle, McKennie saw Morris open and played a ball down the middle but to Morris’ right. Morris dribbled to his right and fired a shot across his body towards the far post. Blake parried it away, but it went right into the path of Pulisic, who couldn’t miss from five yards out.

PULISIC MAKES IT ✌️ He fires home the rebound off Jordan Morris's shot and doubles the @USMNT's lead 💪🇺🇸 #GoldCup2019 pic.twitter.com/qgZdUG9Bqi — FOX Soccer (@FOXSoccer) July 4, 2019

Berhalter brought in Gyasi Zardes for Altidore in the 55th minute, and McKennie again played a perfect pass to Zardes a few minutes later to put the Columbus Crew striker through on goal. Instead, Zardes somehow missed. In the 69th minute, the oft-criticized USMNT striker played a role in Jamaica cutting the deficit to one. Zardes turned the ball over in his own half and after the ball made its way to Bayer Leverkusen winger Leon Bailey, Bailey delivered a great cross that Shamar Nicholson headed home to make it 2-1.

Despite some nervy moments late and both teams fatigued in the heat on a long night, Pulisic put away a second rebound, this time off a strike from Arriola that was blocked before the boy wonder scored his 13th international goal.

PULISIC DOES IT AGAIN! 🇺🇸 He fires it into the side netting and makes it 3 for USA 💪 #GoldCup2019 pic.twitter.com/DL7Pwc5gMs — FOX Soccer (@FOXSoccer) July 4, 2019

The U.S. wasn’t always the best, but it was clearly a better performance for Berhalter’s side. McKennie and Bradley were outstanding together in midfield while Cannon impressed down the right side, essentially allowing Jordan Morris to move up alongside Zardes and Altidore (while he was in) as a second striker. Pulisic was much better in a floating role, where he could get the ball out wide and take on defenders to create goal-scoring opportunities.

Mexico started the Gold Cup strong and has kind of faded over the tournament, while the U.S. has grown into it game after game. We’ll see which USMNT squad makes it on the field against Mexico, but at this point, another title is in both team’s reach.