The Indians went to lunch on the third day at 414 for five, a lead of 190 runs over Pakistan's modest first innings total of 224 with five wickets in hand on Thursday.
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.
Both sides are level 1-1 in the three-match series, the first between the two countries on Pakistan 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.
Dravid has been at the crease for nine hours and 35 minutes, faced 389 deliveries and hit 22 boundaries in his 17th Test century.
Left-hander Yuvraj Singh was the other unbeaten batsman on 13.
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.