Town took a slender lead in at the break after Thomson's opener midway through the half but were dominant after the break adding a pair of goals to bring an end to their seven-game winless run.
Both sides made changes following defeat in their previous outings. Simon Weaver brought Will Smith, Jack Muldoon and Calum Kavangah back into the starting line-up in place of Rory McArdle and Mark Beck - who both dropped to the bench - and Lewis Richards who missed out through injury.
For the Iron, Keith Hill made two changes to the line-up that fell to a 5-1 defeat at Salford last Saturday. Hayden Hackney and Sam Burns came into the starting line-up in place of Alfie Beestin and Luke Matheson.
Town had a chance in the opening minute when Jack Muldoon won possession and quickly fed Alex Pattison with the midfielders shot across goal no more than a foot or so wide of the target.
Harry Lewis found himself with space down the left hand side to attack the defence, with the midfielder going down under a challenge from Ryan Fallowfield. The referee though correctly waved play on.
Muldoon, after good work down the right hand side to beat his man, got a cross away to the near post that found Luke Armstrong but Town's leading scorer fired narrowly wide.
There was an immediate response from the home side when a sweeping pass to Tyrese Sinclair put him through beyond the Town defence. Mark Oxley was on hand though to race from his line and deflect the shot wide for a corner.
The Iron created a carbon copy attack on twenty minutes with Joe Nuttall this time played through. However, he made the angle for the shot too narrow and Oxley comfortably cleared the danger.
Town took the lead midway through the half after winning a corner following persistent play from Diamond. Thomson put in an inswinging corner that evaded the home defence and keeper Ryan Watson to nestle in at the far post.
Town were comfortable with the lead although did see Pattison go into the book for tugging back Sinclair.
With half-time approaching Town could, and should, have doubled their lead.
After Watson dropped a looping cross Diamond could only poke wide before the winger had a glorious opportunity after Kavanagh's flick-on freed Muldoon. With a two on one opportunity, Muldoon drew the defender but Diamond rolled his effort wide of Watson's left-hand post.
United came out in purposeful mood after the break and the impressive Nuttall's strength allowed him to play in Hackney who's snap-shot was only narrowly over the bar.
Pattison then tested Watson with a curling effort from distance but the effort lacked power and was comfortably handled.
The midfielder was forced off moments later though after a collision and was replaced by Lloyd Kerry.
Armstrong then fired a powerful shot inches wide of Watson's post but Town were not to be denied.
Diamond picked the ball up on the edge of the area, and having brought the ball onto his left cracked a shot beyond Watson to make it 2-0.
The hosts responded by making a double change with Beestin and Rekeil Pyke replacing Cribb and Burns.
Town were pushing hard to further extend their lead though and Muldoon went close with a powerful drive from the edge of the area on 65 mintes.
Kavanagh was then denied from a one on one opportunity thanks to smart work from Watson before Armstrong saw an effort from the edge of the area blocked.
The inevitable third goal came with just over ten minutes remaining and it was from another Thomson corner. This time Smith rose highest to head home off the underside of the bar.
The Iron made their final change in response, taking off Hackney for Dan Gallimore.
But it was to little avail as Town comfortably played out the remaining minutes with the win seeing them move upto 15th place in the table.
Scunthorpe: Watson, Delaney, Taft, Nuttall, Rowe, Sinclair, Feeney, Hackney (Gallimore, 79), Burns, (Beestin, 62), Lewrie, Cribb (Pyke, 62).
Subs not used: Foster, Bunn, Gallimore, Baker, Young.
Booked: Feeney (64)
TOWN: Oxley, Fallowfield, Burrell, Smith, Sheron, Thomson, Pattison (Kerry, 60), Diamond, Kavanagh, Muldoon, Armstrong.
Subs not used: Cracknell, McArdle, Austerfield, Power, Beck.
Booked: Pattison (36)
Goals: Thomson (21), Diamond (62), Smith (78)
Referee: Tony Harrington