United entered the game making three changes from the side that faced Swindon Town a week earlier, as Mason O'Malley, Hayden Hackney and Rekeil Pyke came in for Luke Matheson, Alfie Beestin and Joe Nuttall.
With six minutes gone, Ross Millen put a long ball forward, but the opposition dealt with it. It fell to Liam Feeney, who shot on the edge but it was off-target.
Soon after, Hackney placed the ball into Millen’s feet. The defender shot but his effort was blocked.
With 12 minutes gone, Hackney received the ball down the right hand side of the area. He beat his man, cut outside, and played the ball into O’Malley on the edge. However, his shot was deflected wide.
From the corner, United took the lead as a free-kick was sent into the six-yard box from Feeney. Pyke rose to meet it and his header was saved only as far as Onariase who finished home for his second goal of the season.
With 23 minutes played, Feeney touched the ball on to Hackney who was driving along the area. The midfielder laid off O’Malley in acres of space, but the shot was blocked.
On 30 minutes, Feeney slotted Millen in down the right. He raced down the wing before sending a ball into the area. It was dealt with before an Iron attacker could capitalise though.
At the other end, in the 33rd minute, Campbell got in space and tried to curl an effort in from the edge of the area. It went wide of Rory Watson’s far post though and didn't trouble him.
Four minutes later, Feeney passed a ball across the box, but Lynch claimed it before Burns could meet.
In the 41st minute, Hackney played the ball into Burns in the area who laid it off to Feeney on the edge of the area. The captain pushed the ball out his feet and tried to curl it into the far left corner. Jay Lynch saved though.
Early in the second half, Feeney had a shot from distance but it went over the crossbar.
The away side levelled in the 51st minute as Kelly shot and, after a deflection, it fell into Watson’s net.
There was a Scunthorpe change a minute later as Sam Burns was replaced by Nuttall.
In the 54th minute, Alex Newby was in space and shot from range but it was wide of Watson’s left post.
Eight minutes after, a ball was sent into the area from the left but Ryan Delaney was there to clear away from the goal line.
Eoghan O’Connell was in space and shot from distance for the away side on 66 minutes, but it went safely into the gloves of Watson.
At the other end, Feeney drove down the right, beating his man, and sending a ball into the six yard box. Nuttall was there but couldn't connect to get the ball into the net.
On 72 minutes, Pyke was replaced by Tyrese Sinclair for Scunthorpe's second change.
Three minutes later, the visitors sent a corner in from the left which went past everyone and out of play.
Beestin came on for Feeney in the final Scunthorpe change of the afternoon with ten minutes left.
Two minutes later, he played a ball forward for Millen but there was too much on it and it went out of play for a Lynch goal-kick.
Then, in the 84th minute, the away side took the lead through Ball, who converted home from close range.
Three minutes after, Sinclair won a free-kick down the left. The following set piece was whipped in by the substitute but it was cleared away.
There were five minutes of time added on but the Iron couldn't make the breakthrough and Rochdale took home the three points.
Scunthorpe return to action when they host Northampton Town on Tuesday night (7.45pm kick-off).
IRON: Watson, Millen, O'Malley, Delaney, Onariase, Pyke (Sinclair, 71), Rowe, Feeney (Beestin, 80), Hackney, Burns (Nuttall, 52), Grant.
IRON SUBS NOT USED: Collins, Taft, Thompson, Bunn.
ROCHDALE: Lynch, O'Keefe, Taylor, O'Connell, Dooley (Grant, 70), Ball (Broadbent, 88), Charman (Newby, 45), Dorsett, Kelly, Clark, Campbell.
ROCHDALE SUBS NOT USED: Coleman, McNulty, Done, Odoh.
ATTENDANCE: 2,548.