Goalkeeper Zack Steffen boots the ball on a goal kick during the Terps’ 2-1 win over Virginia in the NCAA tournament semifinals on Dec. 13, 2013 at PPL Park.

CHESTER, Pa. — The Terrapins men’s soccer team was clinging to a one-goal lead in the 88th minute of Friday night’s College Cup semifinal against Virginia at PPL Park when Cavaliers midfielder Brian James blasted a strike from the top of the 18-yard box headed for the bottom left corner of the goal.

Earlier, forward Patrick Mullins’ second tally of the night gave the No. 5-seed Terps a comfortable advantage with 14:31 remaining in regulation. However, midfielder Todd Wharton answered with a penalty kick just more than a minute later to give the No. 8-seed Cavaliers a fighting chance down the stretch.

The Terps were in danger of letting a trip to the national championship game slip away for the second straight year. But goalkeeper Zack Steffen was not going to let that happen.

The freshman read James’ hips, dove to his right and tipped the shot out of play with one hand, thwarting what would be the final good scoring chance for the Cavaliers. The Terps hung on for a 2-1 victory, advancing to the NCAA tournament final Sunday against No. 3-seed Notre Dame.

“We’ve seen it from Zack throughout the year,” coach Sasho Cirovski said. “There’s very few goalkeepers in the country who can do the things he can do.”

The Terps started slowly in the below-freezing temperatures. The Cavaliers dominated possession through the game’s first five minutes, bodying their opponents off the ball and forcing turnovers with physical play.

The Terps settled in, though, and ended the scoreless tie in the 11th minute. After a Cavaliers turnover just outside the center circle, midfielder Mikias Eticha collected and played a pass over the top intended for a streaking Mullins. The forward broke free from two defenders and chipped the bouncing ball past goalkeeper Calle Brown for his 17th goal of the season, matching his total from last year.

“As a forward, all you can do is make hard runs and hope the ball gets there,” Mullins said. “When you have great players feeding you the ball, more times than not, they’re going to get there.”

The Cavaliers forced Steffen to make two saves over the next 12 minutes. Their best chance came with 22:20 remaining, when midfielder Jordan Allen cleared space left of the goal with several step-over moves before firing a shot from a tough angle. Steffen deflected the attempt away with two hands, and the Terps cleared to prevent a rebound opportunity.

Cirovski brought three substitutes off the bench in the final 20 minutes of the half, replacing midfielder Michael Sauers with midfielder Alex Shinsky, forward Schillo Tshuma with forward Jake Pace and midfielder Tsubasa Endoh with midfielder Sunny Jane. The fresh legs prevented a response from the Cavaliers, and the Terps carried a 1-0 lead into halftime.

Things heated up just minutes into the second half. Mullins had another great opportunity in the box, but the forward took one too many touches and failed to produce a quality strike on target. Seconds later in the other end, forward Darius ripped a shot from left of the goal that Steffen deflected off the post and corralled.

“The ball was bouncing and he hit it well,” Steffen said. “It knuckled a little bit. And it hit the bottom of my palm, and then I look up, and it hit the post. Luckily, it hit the post. That’s why the keepers like the post.”

With 26 minutes remaining in regulation, Madison hit the post again. The forward beat multiple defenders along the goal line right of the cage before shooting, but the ball clanged off the post and out of bounds.

The physical play started producing fouls in the final 20 minutes of regulation, as fatigue set in for both teams. Cavaliers defender Scott Thomsen and Wharton both earned yellow cards for hard challenges on Endoh. The Terps couldn’t capitalize on either free kick, though.

With 14:31 remaining, the Terps added an insurance goal. Endoh floated a ball from the right sideline behind the Cavaliers backline to Mullins, who settled and finished in the bottom right corner with his left foot to give his team a two-goal advantage.

“I was going to pass to his feet, but I saw he was running, so I just decided to pass it over,” Endoh said. “And it worked. His finish was great.”

It took just more than a minute for the Cavaliers to respond. They earned a penalty kick after a reckless challenge from midfielder Dan Metzger on a fast break, and Wharton finished in the bottom right corner to cut the Terps lead to one goal.

The late push, though, was not enough, as the Terps defeated the Cavaliers for the second time in the past month.

“We treated this week as a very ordinary week,” Mullins said. “We wanted to get in each day at practice and get better. Last year, we felt we didn’t start out very well in the final four and we wanted to make sure that didn’t happen again this year. And I think that was just due to our preparation of taking it like any other game.”

Steffen grew up in Downingtown, Pa., about 40 minutes west of Chester, and said he had between 25 and 30 close friends and family in the stands Friday night. It was the extra motivation he needed to put on another stellar performance.

A product of the Philadelphia Union academy, Steffen could one day call PPL Park his home stadium. Those days, though, are in a future.

Now, the freshman must focus on bringing a national championship back to College Park for the first time since 2008.

“He still has a long way to go, but he is a special person, a special goalkeeper,” Cirovski said. “He’s extremely coachable. He’s mentally tough. And he keeps getting better. And when you look at our team, when you have a Steffen in goal and you’ve got a Mullins up top and you’ve got a bunch of hard workers in between, you’ve got a chance every game. And today, both of them came through with special plays.”