Ingram smashed 105 not out from 104 balls, including 10 fours, to help the hosts post an imposing total of 315 for four.
The tourists never looked like chasing it down, Kleinveldt doing the majority of the damage with four for 22 and a run out as Pakistan were bowled out for 190 inside 37 overs.
Ingram put on a third-wicket stand of 120 with captain AB de Villiers (65) to take the match away from their opponents on Sunday morning, but Pakistan could only manage a biggest partnership of 49 as wickets fell at regular intervals.
Kleinveldt started it off by having Nasir Jamshed caught at first slip by Graeme Smith for 25.
The quick than ran out Mohammad Hafeez (25), backing up at the bowler's end.
Pakistan slipped to 65 for three when Asad Shafiq (five) was caught at fine leg by Kyle Abbott off Ryan McLaren.
Younis Khan and Misbah-ul-Haq briefly threatened a recovery, but first Younis edged an Abbott delivery behind to wicketkeeper De Villiers for 30 and, three overs later, De Villiers sent Misbah packing for 38, taking the catch after the batsman gloved another McLaren ball.
McLaren got his third wicket to remove Kamran Akmal, finishing with figures of three for 19, before Lonwabo Tsotsobe did for Shoaib Malik (19) and Kleinveldt polished off the tail.
Shahid Afridi hit a quickfire 34 from 16 balls, including three sixes and two fours, but when he became Kleinveldt's fourth victim the game was up.
Earlier, South African openers 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 wicketkeeper Akmal.
Amla was dismissed for a run-a-ball 43, including six boundaries, caught at deep square leg by Shoaib off Hafeez.
Ingram joined De Villiers at the crease and set about taking the game away from Pakistan.
De Villiers' 63-ball knock, his 30th ODI fifty, was brought to an end by Ajmal, Younis 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.