Buttler (106) and Ben Stokes (62) defied India in a fifth-wicket stand of 169 that helped to take the third Specsavers Test into a final day – albeit with England on 311-9 and therefore bound for almost certain defeat, still 210 runs behind at Trent Bridge.
Barring a double-century last-wicket stand between Adil Rashid and James Anderson, England will head to Southampton for next week’s penultimate Test with only a 2-1 series lead.
Buttler therefore admitted to a tinge of regret he and Stokes could not defy an India attack led by Jasprit Bumrah (5-85) even longer, but after recording his first Test hundred, in his 38th innings and four years after his debut, he rightly allowed himself a smile of satisfaction too.
“This is definitely the proudest moment in an England shirt,” said the 27-year-old. “It was really satisfying. It has been a long time coming, and a few months ago it was a million miles away.”
Asked how his breakthrough Test century compares with his many limited-overs highs, he said: “It’s a lot more fulfilment, probably.
“It’s just been a longer time coming, I think. It proves to me I can do it, and I’m hungry to go and do it again.”
Buttler feared this was a day that would never come for him.
“It’s a huge moment for me,” he added. “I’m delighted, a little bit lost for words, but delighted. To prove you can do it, that’s a huge part of it.
“(It’s) not just for yourself or anyone else - but to show you can do it for your team as well is maybe the biggest thing and to feel like you ... belong.
“I was never sure if I’d ever play Test cricket again. All those thoughts go through your head while you’re out there as well when you start to get close.
“I never thought this would happen, so I had to try and make sure it did. Definitely there were times when I thought that race was run.”
Rashid had ridden his luck to leave England merely on the brink after India managed only one of the two wickets they still needed in the extra half-hour.
Rashid was on his way back for a single when he was caught in the slips, only for Jasprit to be called for over-stepping, and was then dropped in the cordon by Virat Kohli on 20 in a ninth-wicket stand of 50 with Stuart Broad.
Jasprit finally had Broad caught in the slips anyway, but Rashid and No 1 11 Anderson kept the tourists out in a bizarre non-conclusion.
Until then, the spotlight had fallen on Buttler and Stokes.
Stokes was a study in self-restraint, taking 48 deliveries to reach double-figures and 147 to complete his slowest Test 50.
Jonny Bairstow, who had dropped down the order to allow Buttler’s promotion after breaking a finger keeping wicket the previous day, was bowled for a golden duck as Bumrah put himself on a hat-trick.
Four wickets fell for 10 runs, Stokes’s the last to a KL Rahul catch at second slip off Hardik Pandya after 187 balls of skilful resistance. But India’s rush up the home straight foundered against the England tail.
The hosts’ openers came through nine murky overs after India’s declaration on the third evening, but were almost instantly unable to defy the odds on the resumption.
Keaton Jennings fell to the fifth ball of the morning and fellow left-hander Alastair Cook went in Ishant Sharma’s next over.
Joe Root and Ollie Pope got as far as a hard-working 62-2 before both falling without further addition in successive overs.
Root edged Jasprit to Rahul and Pope’s response was to go after an expansive drive at Shami, which ended only with Kohli’s head-high grab charging from third slip across second.