The 22-year-old left hander was 126 not out alongside Shakib Al Hasan (32) at the close as the hosts reached 269-3 in their second innings for a 114 run lead.
New Zealand could only add 18 to their overnight score with Ish Sodhi (58) run out by Mominul and Abdur Razzak trapping Trent Boult (4) leg before wicket as the tourists were all out for 437, a first innings lead of 155.
Bangladesh, looking for a first test win over the Black Caps, started their second innings poorly and were 55-2 after seamer Neil Wagner had Anamul Haque (22) and Marshall Ayub (9) both caught in the slips.
But Mominul steadied the ship, batting through the second session with opener Tamim Iqbal as the pair put on 157 for the third wicket, a Bangladesh record, and clawed the hosts out of the deficit.
Mominul brought up his second test century in fine style with a slog sweep four over mid on, one of 16 boundaries he hit in his impressive knock.
The partnership was eventually ended when Tamim was dismissed for 70 after tea, cutting a ball from Kane Williamson which Ross Taylor brilliantly caught to leave Bangladesh on 212-3.
Shakib joined Mominul at the crease and continued the fightback, seeing out the last 17 overs of the day to leave it all to play for in Friday's final three sessions.
The first test was drawn.