The England captain, unbeaten on 95 overnight, reached 101 not out off 198 balls before retiring.
St Kitts stuttered to a draw with a second innings of 76-7, after England had declared on 379-6 at tea.
Another two-day game follows but with an agreement for England to bowl and bat for 90 overs regardless of wickets.
The first Test against West Indies starts in Antigua on 13 April.
Cook, 30, has scored an England-record 25 Test tons but has not reached three figures in his last 31 Test innings.
His last century for England in any match was 154 (retired out) against Australia A in Hobart on 6 November, 2013.
Cook, who was dropped from the one-day squad on the eve of the World Cup, is looking to reassert himself as batsman and captain before England attempt to win back the Ashes in July and August.
Ian Bell also retired on 59 as England replied to St Kitts first innings total of 59 all out.
Pace bowlers Liam Plunkett and Mark Wood, initially left out of the side, shared the new ball in the second innings and both were among the wickets as coach Peter Moores used 14 players.
Kent off-spinner James Tredwell was the pick of the bowlers with 3-35.
He said: "We'd have liked a sterner contest but you play the cards you are dealt and get on with it.
"A little bit of a sterner contest would have been handy, but it's time in the middle for us."
Alastair Cook hit his first England century since November 2013 on day two of their warm-up match against a St Kitts & Nevis Invitational XI.