Australia held a first innings lead of 55 with seven wickets in hand after New Zealand were rolled for 183.
Khawaja was 115 not out in the third consecutive Test in which he has scored a century against New Zealand.
Adam Voges put his reprieve from an umpiring blunder late on the first day behind him as he moved to 40.
Australia resumed the day at 147-3 and added 91 runs in the morning session with Khawaja progressing from his overnight 57 in a near chanceless innings.
The first, when he was in the 90s, was dismissed with the ball drifting down leg side and the second, which New Zealand reviewed, showed the ball would have grazed the outside of leg stump and the not-out decision remained.
Between the two appeals, Khawaja pulled Craig to the square-leg boundary for four to reach his century and celebrated by kissing the badge on his helmet before saluting the crowd with his bat.
It was one of 21 fours so far in Khawaja's 178-ball innings.
He hit centuries in Brisbane and Perth when New Zealand toured Australia last November and added another against the West Indies in the Boxing Day Test.
