The Welsh side triumphed 1-0 in a match in which Forest again paid the price for a host of missed chances, as Ross McCormack's 54th-minute penalty secured three points for the visitors.
Colin Calderwood's side remain rooted to the foot of the table after picking up only one win in 13 matches. But they will consider themselves unlucky not to have added to that tally following a match they dominated for long periods.
Forest looked lively early on with the front three of Joe Garner - who was included for a surprise debut - Paul Anderson and Garath McCleary combining well.
And it was a combination that almost led to an opening goal for the home side as Chris Cohen swung the ball in from the right and, with Cardiff unable to clear at the far post, McCleary laid on Garner to drive an instant shot against the post from eight yards.
Lewis McGugan, restored to the side following his own injury problems, beat Darren Purse in a tussle for the ball on the edge of the box but drove powerfully wide of the post, while Cohen had a skimming shot saved at the near post by Heaton.
Jay Bothroyd also fired wildly high and wide when presented with a golden chance to put Cardiff ahead from ten yards out.
Forest were still dominant however, with McGugan seeing a shot deflected narrowly over, McCleary firing a rasping effort across the face of goal and wide and Heaton making a fine save to palm an angled effort from James Perch around the post.
The second half began in similar fashion, with Garner seeing a shot blocked following a flowing move and McCleary rolling another wide of the post.
But Forest, for the second game running, were undone by a penalty. This time it was McGugan who clumsily lunged in on Stephen McPhail just inside the box, with one-time Forest target McCormack blasting home from the spot.
Forest were deflated by the goal but still came close again through McCleary, who saw Heaton make a capable save.
The Cardiff keeper also denied substitute Earnshaw a dream goal against his former club, blocking superbly with his legs after the striker had burst clear.
Cardiff defender Miguel Comminges made a goal-saving tackle to deny Cohen as he slid to connect with Nathan Tyson's cross.