The Indians went to tea on the third day at 525 for six, a lead of 301 runs after Pakistan's modest first innings total of 224.
Dravid was unbeaten on 227 at the break on Thursday, having batted for 11 hours and 30 minutes and faced 457 deliveries, of which 30 were hit for boundaries.
It was the 31-year-old Indian vice-captain's third big knock in nine Tests this season after his 222 against New Zealand at Ahmedabad in October and 233 against Australia at Adelaide in December.
Yuvraj Singh, who put on 98 for the sixth wicket with Dravid, was trapped leg-before by Mohammad Sami after making 47.
Irfan Pathan kept Dravid company at tea on nine.
Pakistan badly missed strike bowler Shoaib Akhtar, who was confined to the dressing room with a ruptured back muscle, caused by a fall on his follow through on Wednesday afternoon.
The absence of Akhtar, who had grabbed three of the first four Indian wickets, was a major blow to the injury-hit hosts already without second Test hero Umar Gul and fellow seamers Shabbir Ahmed and Abdul Razzaq.
The two sides are level 1-1 in the three-match series, the first between the two countries on Pakistani soil since 1989.
Dravid, who batted through the second day's play to make an unbeaten 134, continued his grind under the hot sun to put India in control of the make-or-break Test.
Resuming at the overnight score of 342 for four, Dravid and Indian captain Sourav Ganguly carried their sixth wicket stand to 131 when Pakistan earned a lucky break 25 minutes before lunch.
Ganguly, who looked in ominous form making 77, failed to ground his bat after completing a sharp single and was run out by a direct hit at the non-striker's end from Imran Farhat.
India won the first Test at Multan by an innings and 52 runs before Pakistan drew level with a nine-wicket triumph at Lahore last week.