Ingram smashed 105 not out from 104 balls, including 10 fours.
He and captain AB De Villiers (65) put on a third-wicket stand of 120.
Openers Graeme Smith and Hashim Amla took the score to 72 before the tourists made the breakthrough, Smith falling to Saeed Ajmal for 30.
The left-hander gloved a delivery through to wicket-keeper Kamran Akmal.
Amla was dismissed for a run-a-ball 43, including six boundaries, caught at deep square leg by Shoaib Malik off Mohammad Hafeez.
Ingram joined De Villiers at the crease and the pair looked to take the game away from Pakistan.
De Villiers' 63-ball knock, his 30th ODI fifty, was brought to an end by Ajmal, Younis Khan taking a catch at short cover.
Faf du Plessis added 26 before Umar Gul at short fine leg held a catch off a Junaid Khan delivery.
But Farhaan Behardien blasted a 14-ball 34 at the death as he and Ingram took their team past the 300 mark.