The 30-year-old struck eight fours in 104 balls after opener Virender Sehwag's explosive 79, from just 57 deliveries, had set the tone for a huge total on a flat pitch.
India's previous best against Pakistan was 316 for seven at Dhaka in 1998.
Dravid shared in a fifth wicket stand of 118 with Mohammad Kaif, who celebrated his return from thumb injury with a 56-ball 46.
All of Pakistan's frontline bowlers came in for severe punishment with Abdul Razzaq the most expensive, going for 83 runs from nine overs. Dravid, cheered on by a packed crowd of 33,500, departed just one run short of his ninth one-day century after dragging a ball from paceman Shoaib Akhtar on to his stumps.
Mohammad Sami picked up two late wickets as India managed just 25 runs in the last five overs, but Pakistan will need to score their second highest total in one-day internationals to overhaul India.
Earlier, the much-anticipated battle between Sachin Tendulkar and Shoaib, widely regarded as the world's fastest bowler, launched a dramatic 10-ball first over that included a wide and three no-balls.
Tendulkar clipped the second delivery he faced from Shoaib for four but the bowler was unlucky off the last ball when Sehwag, on nought, was dropped by Shoaib Malik at cover.
In his next over, Shoaib had Tendulkar caught at square-leg off a no-ball, the batsman having almost walked off before he realised umpire Simon Taufel had ruled it an illegal delivery.
Tendulkar then pulled Shoaib over fine-leg for an edgy six, but the bowler finally gained revenge, having the batsman caught at gully for 28 by Rana Naveed-ul-Hasan.
Sehwag took over after Tendulkar's departure, punishing Rana with four fours in his opening over, which went for 24.
He raced to his 13th one-day fifty in 43 balls before Rana bowled him with a slower delivery.
India were without batsman Vangipurappu Laxman, who was ruled out at the last minute due to a stiff left knee.



