Hayward took three for 29 and Ntini three for 45 as Pakistan crashed to 120 for eight before bad light ended play, in reply to the home side's first innings of 368.
Openers Taufeeq Umar and Salim Elahi both scored 39, but Inzamam-ul-Haq's 18 and Yousuf Youhana's 12 were Pakistan's only other double-figure scores.
Umar and Elahi batted cautiously to add 77 for the first wicket when Taufeeq (39) steered a Hayward delivery to Graeme Smith at third slip.
Elahi had a life on 27 when his top edge off fast bowler Jacques Kallis was dropped by Nicky Boje at first slip.
But Pakistan, having reached a reasonably solid 81 for one at tea, then lost seven wickets for only 39 runs in the final session as South Africa took control.
Four overs later, Younis Khan was trapped behind the crease by a delivery from fast bowler Shaun Pollock and was out leg before for one.
Elahi went next when he mistimed a pull shot off Ntini and sent a dipping catch to Neil McKenzie at mid-wicket.
Pakistan slipped to 107 for four when Inzamam fended a throat ball from Ntini back to the bowler.
Faisal Iqbal suffered perhaps the most ignominious dismissal after Yousuf
Abdur Razzaq succumbed for one to a tame catch in the gully off Hayward, who uprooted Saqlain Mushtaq's middle stump to complete the carnage.
The hosts, who resumed on 250 for five, lost their sixth wicket in the fourth over of the day when Kallis left an inswinger from fast bowler Mohammad Sami and was bowled for 105.
TWO SIXES
Kallis had batted for more than five hours, faced 236 balls and hit 11 fours and two sixes.
Captain Pollock scored 21 before he attempted to hook a delivery from fast bowler Waqar Younis and was caught down the leg-side by wicketkeeper Kamran Akmal.
Mark Boucher and Boje consolidated with an eighth-wicket stand of 58 before Boucher fell to a looping catch by Faisal at short leg off the bowling of off-spinner Saqlain.
Boucher's 55, scored off 108 balls and including eight fours, took him past 2,000 runs in Test matches.
Saqlain claimed his fourth wicket when Ntini, on nought, lofted a drive toward the long-on boundary and was well held by Umar.
The innings ended when Hayward, who had scored 10, had his middle stump uprooted by Sami. Saqlain finished with figures of four for 119.