The 29-year-old had looked for all the world as though he would take his Test tally to 26 hundreds - 14 months and 28 innings after getting his 25th - but Ravindra Jadeja spoiled the party by dismissing him, caught-behind down leg-side, on 95.
"If you'd have offered me that at the beginning of the day, of course I'd have taken it. I'm disappointed because it adds to the innings without a hundred, but I've batted okay and it's nice to finally contribute," he admitted.
Cook answered his many critics with a fine hand at the top of the order, but sadly the century was not to be as Jadeja - who also dropped him on 15 - eventually got him caught-behind down the leg-side from a bottom-edged pull 80 runs later.
England nonetheless took control, after winning the toss, to the tune of 247 for two on the back of a second-wicket stand of 158 between Ballance (104 not out) and Cook. The England captain and Sam Robson also shared their first half-century opening stand together, at the eighth attempt.
Cook's personal milestone was reward for the "blood, sweat and tears" he cited on the eve of this match was within touching distance after almost five hours at the crease, only for him to fall midway through the evening session, to the 231st ball he faced.
Disappointment was etched on his face, after Marais Erasmus confirmed his dismissal, but an appreciative and empathetic crowd applauded Cook from the ground in recognition he had rediscovered his run-scoring knack after a previous sequence of just 127 in nine Test innings this year.
They had some consolation to cheer soon enough too when the prolific Ballance's third hundred of the summer, in only his sixth Test, duly arrived with a back cut off Mohammed Shami for his 15th four.
Cook, under intense pressure as his team try to arrest a run of seven defeats in nine matches, might easily have gone much more cheaply on a bright but cloudy morning.
He survived when he poked out at a Pankaj Singh delivery from around the wicket and should have become the debutant's maiden Test victim only for Jadeja to put down a straightforward chance at third slip.
Cook often appeared tentative, edging the first ball of the match from Bhuvneshwar Kumar short of second slip and also beaten on the outside edge by Shami before his scare against first-change Pankaj.
He nonetheless went past first Kevin Pietersen and then, after lunch, David Gower to move up to third in England's list of all-time Test runscorers.
Robson was the more convincing opener, with cover-driven fours off Kumar and then Shami, until the latter saw him off with a touch of extra bounce - Jadeja safe this time with the mirror-image chance at third slip.
Cook gradually grew in confidence on the way to his highest score since he made 130 against New Zealand at Headingley early last summer.
On a pitch with pace and carry, England were doubtless relieved there was no threat from Ishant Sharma - the tall seamer who helped to put India 1-0 up at Lord's six days ago but is injured here.
Without him, India needed Kumar and Shami to be at their best - and although the two canny seamers regularly beat the bat, they found precious few edges.
Cook passed his first half-century since the Melbourne Test last Christmas, when he pulled Shami for two soon after lunch, and Ballance established a similar tempo on the way to his fifth score of 50 or more in only 10 Test innings to date.
It seemed both would convert to three figures - and after Cook fell just short, Ballance made no mistake.
Joined by an initially scratchy Ian Bell, with the second new ball taken immediately after it became available, England's new inked-in No.3 completed his chanceless hundred.
It was an innings faithful to the hallmarks increasingly associated with the reliable left-hander - low risk,with measured acceleration.
In Ballance and thankfully perhaps Cook once again, England have a pillar on which to build the totals they will need to overturn the series deficit they conceded at Lord's.
Cook, meanwhile, can reflect on a job well done as he finally managed to answer his critics. "I can't tell you how much I wanted to score a hundred," he added.
"The support I have had throughout this period, which I'm not through yet but it's a little step in the right direction, has been great. When you haven't scored runs for a long time it's only natural to be nervous and only natural to want it even more."