As Maryland men’s soccer forward Justin Harris attempted a header in the box, Cal State Fullerton forward Tre McCalla pulled him down. And when the whistle sounded to signify the foul, a perplexed Titans’ bench raised its hands and voiced disapproval.

Regardless, the resulting penalty shot saw midfielder Eli Crognale step up and slot home the opportunity in the 21st minute.

Three minutes later, midfielder Malcolm Johnston assumed control of a loose ball in the box and cashed home the opportunity to give the Terps a 2-0 lead during their highest-scoring first half of the season, propelling them to an upset victory over No. 14 Cal State Fullerton on Saturday night at Ludwig Field.

“Tonight we came out, we were ready for the fight from the first whistle,” coach Sasho Cirovski said.

Cirovski’s team has controlled play in the early stages of its last two games, accumulating a combined 20 shots in the first half against Wisconsin and Rutgers. But despite the pressure, Maryland had nothing to show for its efforts before halftime in those bouts.

Saturday night, though, the Terps took advantage of their overwhelming play, as pressure from the Maryland attack put goalkeeper Paul-Andre Guerin under siege from the outset.

Guerin succumbed to it in the 21st minute, with Crognale’s penalty shot sailing past his outstretched arms and inside the post, despite the goalkeeper guessing correctly.

On Maryland’s second goal, Crognale’s free kick into the box was knocked down — but not cleared. Johnston was at the right spot in front of the goal to clean up the chance and extend the Terps’ lead.

“We felt like it was coming for a while now,” defender Ben Di Rosa said of the first-half effort. “This game, just continuing the momentum from last game.”

As Maryland searched for a third goal in transition in the 35th minute, forward Eric Matzelevich and defender Edward Salazar got tangled up.

A shoving match ensued between the two, with Matzelevich falling to the turf. After the situation dissipated and the officials reviewed the video, three yellow cards were assessed. Matzelevich, Salazar and Titans midfielder Rei Dorwart, who joined the fray, were shown the cautions.

“I just saw some fussing going on,” Crognale said. “We were getting in their heads, and that’s a good thing.”

The hostility extended beyond the players on the field, as Cal State Fullerton’s coaching staff vehemently disagreed with a number of calls throughout the game. After the first half, an assistant coach had to restrain coach George Kuntz during a heated exchange with the group of officials at midfield.

Following the encounter, Kuntz was shown a yellow card, the sixth of the match to that point. A seventh card was given in the second half of the physical match.

Maryland continued to create threatening chances in the final 45 minutes — including a goal taken off the board in the 84th minute because forward Luke Brown was offsides by a step — while the defense secured its sixth clean sheet of the season.

“We knew they were going to have bouts of possession,” Cirovski said. “And I thought our guys did a great job of getting back and making things difficult for them. … I think it was a pretty complete performance.”

The result marks the Terps’ third win in their past four games — which also included a tie against Wisconsin — after a disappointing showing in a 3-1 loss to Northwestern on Sept. 20 in the team’s Big Ten opener.

Since that loss, Maryland has responded with two ranked victories, exercising control of games early on. For Cirovski, he’s seen the victories pile up even as injuries mount, and he attributes that to the team shaping into form as the season progresses.

“Our goal was always to be good in September,” Cirovski said, “and to be great in October, and I think we’re off to a good start.”