John McAtee equalised following Stephen Gleeson's opener from the penalty spot, but the away side regained the lead through Krystian Pearce.
Gleeson added his second from the penalty spot before substitute Kevin van Veen pulled one back in the closing stages (he was making his first appearance since March due to the premature end to last season because of COVID-19 and a knee injury).
The first incident of note came in the third minute when the visitors were awarded a penalty, with their midfielder Gleeson duly dispatched.
Five minutes later, following a corner, ex-Iron defender Pearce headed the ball across goal with a goalbound effort saved by Mark Howard. The rebound was controlled with the arm and ended up in the net, but the referee spotted the handball and disallowed it.
Scunthorpe searched for a way back into the game and, in the 13th minute, Alex Gilliead flicked the ball onto Kenan Dünnwald-Turan, who took one touch inside the box before the ball was lashed clear for a corner.
United levelled the scores just a minute later, when McAtee raced down the left and cut onto his right foot. He curled an angled cross towards the far post, with Dünnwald-Turan challenging, but the ball nestled in the corner without a touch.
Soon after, Devarn Green raced down the right channel and squeezed in a cross which Pearce put out for a corner.
Then, Gilliead’s deep cross was controlled well by Jake Taylor. He teed up Lewis Butroid, who delivered for Dünnwald-Turan, but his glancing header went wide.
On 24 minutes, Green and McAtee worked the ball down the right before the cross was cleared. Spence hit the volley but his effort was blocked.
Five minutes after, Taylor brought the ball forward after Dünnwald-Turan won a header. He found space on the edge of the area and looked to have beaten the ‘keeper but the ball rolled just wide.
After 32 minutes, Butroid headed away a goalbound shot from Joe Sbarra as he received a back heel from Gleeson, who surged into the area.
Following that, Jordan Cranston received the ball on the left and rolled an inviting cross across the six-yard box, but there was no touch and the ball went out for a goal kick.
The 37th minute saw superb play from the Iron involving Gilliead throughout. He exchanged passes with McAtee and Green before his cross was sliced clear for a corner. Butroid’s resultant set-play was an inviting one, but the ball was headed away.
There was then neat passing again from the Iron before Gilliead picked the ball up and added a turn of pace to his run. He was pulled back by Gleeson, winning a free-kick. Butroid whipped the free-kick into the six-yard box, on-target, but there was no extra touch as the ‘keeper watched the ball and gathered.
In the 48th minute, Tyler Cordner got the first yellow card of the match following a foul down the left channel, which resulted in a free-kick for the visitors. From that, the away side retook the lead with the free-kick initially cleared, but a looping header from ex-United defender Pearce nestled in the far corner.
Two minutes later, it was almost three when Sbarra connected to a throughball and looked to dink the ball over Howard, who saved the effort.
Then, Solihull broke in numbers following a free-kick and had four players racing through. The ball was played across to Gleeson, with Howard making a fine save.
With 64 minutes played, McAtee slipped Dünnwald-Turan in on the left side of the area, but he rolled his effort wide with the ‘keeper narrowing the angle.
Then, on the other side of the box a minute later, Green made a great run on the right side and was slipped in before seeing his shot saved for a corner.
With around 20 minutes left, United made three changes as van Veen, Jordan Hallam and Olufela Olomola replaced Dünnwald-Turan, Taylor and McAtee.
In the 79th minute, the away side won another penalty which Gleeson stepped up to slot beyond Howard.
The Iron pulled one back in the 84th minute when van Veen fired home from close range after Hallam seized on a poor pass from the away goalkeeper to set him up.
Scunthorpe pressed late on and won a number of corners, but nothing could come from them.
Three minutes into stoppage time, Cordner was given his second yellow card after a pull back on former Iron Jamie Ward, who had come on as a substitute.
Scunthorpe continued to press for a late equaliser but couldn't find it.
United return to action on Tuesday, with a home game against Mansfield Town in the Papa John's Trophy group stages (7pm kick-off).
IRON: Howard, Bedeau, Gilliead, Brown, Green, Butroid, Spence, Cordner, Dünnwald-Turan (van Veen, 72), Taylor (Hallam, 72), McAtee (Olomola, 72).
IRON SUBS: Collins, Hippolyte, Dales, Beestin.
SOLIHULL: Boots, Williams, Cranston (Carter, 72), Storer, Sbarra, Gleeson, Coxe, Maycock (Osborne, 72), Hancox, Hudlin (Ward, 81), Pearce.
SOLIHULL SUBS: Clayton, McNally, Piggott, Shergill.