Two late goals extended Nottingham Forest's unbeaten home record to 32 league games and kept them on the coat-tails of the teams in the play-offs.
It was looking like a first home league defeat for Forest since September 2009 after Nwankwo Kanu gave Portsmouth a lead they held until the 87th minute.
But Forest's pressure eventually told and Ibrahima Sonko's own goal brought the home side level.
Marcus Tudgay completed the turnaround four minutes into injury time.
The former Sheffield Wednesday striker was one of two changes made by Forest boss Billy Davies from last weekend's FA Cup tie with Preston - the other being midfielder Radoslaw Majewski.
Portsmouth handed a debut to on-loan Manchester United defender Ritchie De Laet, while Joel Ward stepped up into midfield due to Dave Kitson's suspension for his red card in the FA Cup defeat at Brighton.
There was little to get excited about during the match until Kanu opened the scoring for the visitors.
The Nigerian collected a pass from strike-partner David Nugent and coolly rounded home keeper Lee Camp before slotting home.
Forest dominated much of the possession throughout the match, but it was not until Davies introduced Nathan Tyson and Lewis McGugan just before the hour that this translated into clear-cut chances.
Tyson hit the crossbar with a long-range effort in the 66th minute and McGugan curled a free-kick just wide before drawing a good save from Jamie Ashdown soon after.
Forest's efforts were rewarded when Sonko's attempted clearance flew into his own net with four minutes to go and then, deep into injury time, Tudgay was on hand to convert McGugan's right-wing cross from two yards out for the winner.
Forest are now on 40 points, two behind sixth-place Watford, but have played up to three games fewer than some of their rivals for a play-off spot.
90:00+4:53 The final whistle goes and the game is over.
90:00+3:33 Assist on the goal came from Lewis McGugan.
90:00+3:33 GOAL - Marcus Tudgay:Nott'm Forest 2 - 1 Portsmouth Marcus Tudgay gets on the score sheet with a goal from deep inside the penalty box to the top right corner of the goal. Nottm
Forest 2-1 Portsmouth.
90:00+3:04 Free kick awarded for an unfair challenge on Chris Cohen by Tom Kilbey. Direct free kick taken by Lewis McGugan.
90:00+3:04 Booking Tom Kilbey is given a yellow card.
90:00+1:46 The ball is swung over by Guy Moussi.
90:00+1:14 Inswinging corner taken by Chris Cohen, David Nugent makes a clearance.
86:26 GOAL - Ibrahima Sonko:Nott'm Forest 1 - 1 Portsmouth Ibrahima Sonko scores an own goal from 6 yards. Nottm Forest 1-1 Portsmouth.
84:21 The ball is delivered by Chris Gunter, Headed effort on goal by Nathan Tyson from inside the penalty box misses to the right
of the goal.
83:15 Inswinging corner taken by Chris Cohen from the right by-line, clearance made by Hermann Hreidarsson.
80:24 Substitution (Portsmouth) makes a substitution, with Hermann Hreidarsson coming on for Nwankwo Kanu.
78:34 Effort on goal by Liam Lawrence from just inside the penalty area goes harmlessly over the target.
77:15 Corner taken by Lewis McGugan, Joel Lynch takes a shot. Save by Jamie Ashdown.
77:11 Chris Cohen produces a cross, clearance made by Aaron Mokoena.
76:37 Aaron Mokoena gives away a free kick for an unfair challenge on Lewis McGugan. Free kick crossed right-footed by Lewis McGugan,
Aaron Mokoena makes a clearance.
76:37 Booking The referee books Aaron Mokoena for unsporting behaviour.
76:13 Nwankwo Kanu challenges Wes Morgan unfairly and gives away a free kick. Direct free kick taken by Guy Moussi.
74:39 Inswinging corner taken by Lewis McGugan from the left by-line played to the near post, save by Jamie Ashdown.
74:23 Inswinging corner taken right-footed by Lewis McGugan from the left by-line to the near post, Ritchie De Laet manages to make
74:12 Chris Cohen sends in a cross, Ibrahima Sonko gets a block in.
72:43 Inswinging corner taken by Chris Cohen. Guy Moussi takes a shot. Blocked by Aaron Mokoena.
71:07 Free kick awarded for a foul by Hayden Mullins on Lewis McGugan. Shot on goal comes in from Lewis McGugan from the free kick,
save by Jamie Ashdown.
71:07 Substitution (Nottm Forest) makes a substitution, with Dele Adebola coming on for Paul Anderson.
71:07 Substitution Tom Kilbey on for John Utaka.
67:22 Lewis McGugan takes a inswinging corner to the near post, clearance by Ibrahima Sonko.
67:17 The ball is sent over by Joel Lynch, clearance by Ibrahima Sonko.
66:46 A cross is delivered by Joel Lynch, Aaron Mokoena manages to make a clearance.
65:15 Effort on goal by Nathan Tyson from 25 yards.
59:37 Foul by Aaron Mokoena on Nathan Tyson, free kick awarded. Strike comes in from Lewis McGugan from the free kick.
57:26 Inswinging corner taken by Lewis McGugan.
56:27 Substitution Nathan Tyson on for Radoslaw Majewski.
56:27 Substitution Lewis McGugan joins the action as a substitute, replacing Robert Earnshaw.
53:24 Unfair challenge on Liam Lawrence by Joel Lynch results in a free kick. Ritchie De Laet takes the direct free kick.
53:24 Booking Booking for Joel Lynch for unsporting behaviour.
48:31 Nwankwo Kanu concedes a free kick for a foul on Chris Gunter. Free kick taken by Lee Camp.
45:01 The second half has started.
45:00+1:04 The referee calls an end to the first half.
45:00+0:03 Drilled left-footed shot by Robert Earnshaw. Jamie Ashdown makes a save.
43:40 Ritchie De Laet challenges Radoslaw Majewski unfairly and gives away a free kick. Luke Chambers takes the free kick.
42:46 Corner from right by-line taken by Chris Cohen. Effort on goal by Marcus Tudgay from inside the penalty area goes harmlessly
over the bar.
42:15 Chris Cohen takes a inswinging corner to the near post, Ibrahima Sonko manages to make a clearance.
41:05 Unfair challenge on Wes Morgan by Hayden Mullins results in a free kick. The free kick is delivered left-footed by Chris Cohen
from right channel, save by Jamie Ashdown.
41:05 Booking Hayden Mullins receives a caution for unsporting behaviour.
39:49 Corner taken left-footed by Chris Cohen from the right by-line to the near post, Jamie Ashdown makes a save.
39:38 Joel Lynch takes a shot. Ibrahima Sonko gets a block in.
38:11 Corner taken by Liam Lawrence from the left by-line played to the near post.
38:04 The ball is delivered by John Utaka, blocked by Chris Gunter.
35:07 Inswinging corner taken from the left by-line by Liam Lawrence, clearance made by Wes Morgan.
33:54 Guy Moussi challenges John Utaka unfairly and gives away a free kick. Liam Lawrence produces a shot on goal direct from the
free kick, save by Lee Camp.
29:15 Ibrahima Sonko concedes a free kick for a foul on Lee Camp. Lee Camp takes the indirect free kick.
28:35 Inswinging corner taken right-footed by Liam Lawrence, Lee Camp makes a save.
27:50 Inswinging corner taken left-footed by Chris Cohen, Jamie Ashdown makes a save.
25:51 David Nugent provided the assist for the goal.
25:51 GOAL - Nwankwo Kanu:Nott'm Forest 0 - 1 Portsmouth Nwankwo Kanu finds the net with a goal from inside the penalty box to the bottom right corner of the goal. Nottm Forest 0-1
24:47 The ball is delivered by Carl Dickinson, clearance by Joel Lynch.
24:41 Centre by Ritchie De Laet.
22:08 Paul Anderson takes a shot. Save by Jamie Ashdown.
21:41 Free kick awarded for an unfair challenge on Chris Cohen by Liam Lawrence. Joel Lynch crosses the ball in from the free kick,
clearance by Ritchie De Laet.
21:06 Free kick awarded for an unfair challenge on Radoslaw Majewski by Liam Lawrence. Free kick taken by Lee Camp.
20:28 Corner taken right-footed by Liam Lawrence from the right by-line to the near post, Chris Gunter makes a clearance.
20:22 A cross is delivered by Liam Lawrence, Joel Lynch manages to make a clearance.
16:32 Effort from long distance by Hayden Mullins goes wide right of the target.
15:28 Inswinging corner taken left-footed by Chris Cohen from the right by-line, free kick awarded for an unfair challenge on Joel
Ward by Joel Lynch. Jamie Ashdown takes the free kick.
14:43 Foul by Aaron Mokoena on Marcus Tudgay, free kick awarded. Chris Cohen crosses the ball from the free kick left-footed from
left channel, Ibrahima Sonko manages to make a clearance.
13:48 The ball is sent over by Ritchie De Laet, Joel Lynch makes a clearance.
11:31 Radoslaw Majewski takes a inswinging corner to the near post, Aaron Mokoena manages to make a clearance.
11:25 The ball is crossed by Joel Lynch, blocked by Ritchie De Laet.
9:21 Liam Lawrence crosses the ball, Foul by Nwankwo Kanu on Wes Morgan, free kick awarded. Lee Camp restarts play with the free
7:07 Free kick awarded for an unfair challenge on David Nugent by Radoslaw Majewski. Carl Dickinson takes the direct free kick.
0:00 The referee starts the match.
Live text and data provided by The Press Association.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.