The game looked to be heading for stalemate after both sides had been reduced to 10 men early in the second half, Luke Hyam and Royals skipper Matt Mills seeing red.
But Church, only brought on after a late injury to Hal Robson-Kanu, was in the right place at the right time to seal maximum points for the hosts.
Robson-Kanu was making his first league start in place of Church for the Royals, while Town boss Roy Keane started with Connor Wickham on the bench after taking the highly-rated striker off before the break in the 1-1 draw at Scunthorpe on Saturday. His replacement Hyam was handed the start.
Keane's men started with intent, youngster Andros Townsend letting fly in the opening seconds but his effort was never on target.
It was a scrappy opening but Robson-Kanu had some joy running at the visitors' defence, beating a couple of men before delivering a dangerous ball into the box that Ipswich keeper Marton Fulop did not look comfortable with but got enough on to clear.
The first real chance of the game fell to Ipswich as striker Jason Scotland outmuscled Reading defender Matt Mills but, with all the goal to aim at, fired wide of Adam Federici's post.
The hosts rallied and another good Robson-Kanu centre found Jimmy Kebe - via Shane Long - who also fired wide, while Jem Karacan's header failed to trouble Fulop.
Hyam was shown a yellow card for bringing down Long and Fulop looked shaky with another high ball - which with better control would have been punished by Robson-Kanu.
Mills followed Hyam into the book after impeding Townsend as a largely disappointing half limped to a close.
Ipswich began the second period well but were rocked in the 52nd minute when Hyam was shown a second yellow card for kicking the ball away after Carlos Edwards had fouled Robson-Kanu.
Mills headed into Fulop's arms as the hosts looked to make their advantage count before Keane made a double substitution in the 56th minute, Wickham and Reggie Lambe coming on for Scotland and Edwards.
The numbers were evened up three minutes later when skipper Mills was sent off after a body check on Townsend but the game needed a goal.
Long headed weakly into the arms of Fulop and McDermott made his first change, replacing Kebe with Michail Antonio and he almost made an instant impact, setting up Karacan who drew a good stop out of Fulop.
Jake Livermore was thrown into the fray for Townsend and had a go from 20 yards out but in keeping with the game it missed the target.
Robson-Kanu went off with four minutes after taking a knock and the enforced change turned out to be inspired.
Harte swung over a corner that was struck goalwards by Karacan where Church, on the field for less than a minute, diverted it home.
The Royals were forced to finish the game with nine men after Karacan was injured in the build-up to the goal but they held on for the points.