Simon Grayson's side extended their unbeaten run to 11 matches but failed to capitalise on Cardiff's 4-1 defeat at Watford and finish 2010 fourth in the table.
Leeds had raced into a two-goal lead, right-back Paul Connolly firing a fine ball across the six-yard box in the seventh minute and Gradel steering a right-footed finish into the bottom corner, his fifth goal in four matches.
Leeds soon doubled their lead, Ross McCormack picking out Howson with a pinpoint cross from the left wing and the home skipper drilling an emphatic finish beyond Pompey goalkeeper Jamie Ashdown.
Pompey deservedly pulled a goal back in the 33rd minute when Nugent finished brilliantly following Richard Hughes' cross from the right.
But Leeds stepped up a gear at the start of the second half, with Snodgrass's blistering angled shot superbly tipped away by Ashdown, and the game burst into life again just after the hour.
Ashdown pushed Gradel's header away for a corner and when the ball was swung in by Snodgrass, Pompey failed to clear and Johnson drilled the ball into the bottom corner from inside the area.
Portsmouth hit back again within 60 seconds when substitute Nwankwo Kanu made the opening for Hughes and the Pompey midfielder's shot was deflected in off O'Brien to make it 3-2.
Leeds substitute Luciano Becchio then had a header turned away at full stretch by Ashdown before Snodgrass's 20-yard effort whistled narrowly over the crossbar.
Referee David Webb waved away Leeds' appeals for a penalty in the 78th minute when Pompey substitute Ibrahima Sonko barged into Snodgrass and Snodgrass wasted a gilt-edged chance to seal it when dragging a shot wide from inside the area.
Kasper Schmeichel denied Hughes with a fine save in the 87th minute, but the visitors snatched a point when O'Brien turned Nadir Ciftci's cross beyond Schmeichel in the 93rd minute.