New Zealand were 507 for eight at tea on the third day, 118 runs ahead following England's first innings 389.
Williamson made 132, having shared stands of 189 with Ross Taylor (62) and 66 with McCullum (42).
He also put on an even 50, with BJ Watling, 47 not out at tea.
England debutant paceman Mark Wood took two wickets for four runs in 18 balls either side of a rain break and off-spinner Moeen Ali two for none in three.
New Zealand resumed Saturday on 303 for two, with Williamson 92 not out and Taylor unbeaten on 47.
England with the new ball available just three overs after the start of Saturday's play, opened proceedings with Ali.
Williamson promptly helped himself to five runs before a three down to third man off James Anderson saw the New Zealand number three -- unlike England's Joe Root and Ben Stokes who'd both fallen in the 90s earlier in this match -- to a hundred.
It was the talented Williamson's 10th hundred in 40 Tests -- an impressive strike-rate -- and the 14th by a New Zealand batsman in a Test at Lord's.
