The 24-year-old Rajkot-born batsman piled on England's misery as he guideed India to reach 502 for six at tea after having batted for a marathon period of almost eight hours.
He became the sixth Indian batsman to hit a double century against England after Mansur Ali Khan Pataudi, Sunil Gavaskar, Gundappa Viswanath, Vinod Kambli and Rahul Dravid.
India declared its first innings at 521/8.
Resuming at the lunchtime score of 410 for four, India lost the wickets of Yuvraj Singh and captain Mahendra Singh Dhoni as England stemmed the run flow a bit.
Off-spinner Graeme Swann picked up one of the two wickets that fell today to add to his four-wicket haul yesterday and register his 14th five-wicket haul in an innings. His figures at the break read five for 143 after a marathon stint of 50 overs.
Yuvraj, not out 72 at the end of session one, could add only two runs in under 10 minutes before slogging a full-toss from left-arm spinner Samit Patel straight down to Swann at long on.
The 30-year-old Yuvraj, who made a comeback into the Test squad after a year's gap during which time he underwent treatment for cancer, had batted for just over three hours and hit six fours and two sixes during his 151-ball vigil.
For Yuvraj it was his 11th half century. He has three hundreds, all against Pakistan, under his belt.
The partnership for the fifth wicket between Yuvraj and Pujara, that started late last evening and proceeded beyond the first session today, yielded 130 runs and came off 285 balls.
India skipper Dhoni lasted just 39 minutes and scored five runs before losing patience against Swann. He dragged an attempted sweep on to his stumps off his gloves which gave the off-spinner his fifth wicket of the game.
After Dhoni's dismissal, R Ashwin joined Pujara and the two grinded their way till tea without being separated, adding 58 runs for the seventh wicket in the process.
The second hour of play after lunch produced 55 runs in 15 overs.
With Pujara content to push his way forward on the sluggish, low wicket where stroke-play was increasingly becoming difficult, the run-rate dropped drastically.
The right-handed batsman, unbeaten on 133 at lunch, reached 150 but his progress from 100 to 150 took him over two hours and 109 balls.
In the morning the home team added 83 runs in 31 overs to their overnight score of 323 for four without losing any wicket.
Cheteshwar Pujara celebrating his double century on the second day of first Test match against England at Sardar Patel stadium in Ahmedabad. UNI photo
Pujara 19th Indian to hit double century in Tests
Cheteshwar Pujara today joined a select band of 18 other countrymen to score a double century in Test cricket.
Pujara's double century is the first by an Indian in nearly two years. Sachin Tendulkar's 214 versus Australia at Bangalore in October 2010 was the last occasion when an Indian batsman had made a double hundred in Test cricket.
He also became the sixth batsman from India to compile a double century against England – the others being Mansur Ali Khan Pataudi (203 not out in 1963-64 at Delhi), Sunil Gavaskar (221 at the Oval, London in 1979), Gundappa Viswanath (222 at Chennai in 1981-82), Vinod Kambli (224 at Mumbai in 1992-93) and Rahul Dravid (217 at the Oval, London in 2002).
Some of the notable others who have scored double century for India in Test matches are Sachin Tendulkar, Sourav Ganguly, VVS Laxman, Vinoo Mankad, Virender Sehwag, Gautam Gambhir, Wasim Jaffer, Navjyot Sidhu, Anshuman Gaekwad, Ravi Shastri, Sanjay Manjrekar.
The likes of Gavaskar, Tendulkar, Dravid, Kambli and Sehwag have multiple double tons.
Pujara, who made his maiden Test hundred (159) two Test matches ago against New Zealand at Hyderabad in August, is widely believed to be the ideal replacement for Rahul Dravid.
The youngster has shown the same sort of abilities, that the now retired Dravid possessed, in home conditions in his fledgling international career.
But a sterner test of his skills will, perhaps, come when India tours South Africa next season.
India 1st Innings: 521 for 8 in 160 overs (Virender Sehwag 117, Cheteshwar Pujara 206 not out, Yuvraj Singh 74; Graeme Swann 5/144)