Barnsley were leading 2-0 when Adam Hammill tripped Chris Gunter as he sprinted through the visitors' defence, an offence Robins felt was outside the area.
Lewis McGugan scored from the spot and substitute Nathan Tyson scrambled an equaliser 10 minutes from time, cancelling out Barnsley's goals from Matthew Hill (17) and Andy Gray (50).
Robins said: "Adam has certainly switched off, got the wrong side and reacted late but the contact was outside of the box. The players tell me it was outside.
"The game changed on that incident and we feel aggrieved that we have not taken all three points and been the first side to win at the City Ground in a long time.
"Before the game, and having played the way we have in the last few games, I would have settled for a point, but the way we set about the game we were good value for the two-goal lead we had.
"We were fairly comfortable and did very well in the game. We did exactly what we intended to do but it's galling that when we come to big clubs those big game-changing decisions go against us.
"We worked really hard all over the pitch but you have to against a side like Forest. I saw them in the week and they did a job on Derby County.
"We knew we would have to be strong against them, which we were, but we were also creative at times and created a number of chances."
Forest boss Billy Davies admitted that his side were far from their best and was happy to come out of the game with a "great" point.
Barnsley had gone in front when Hill robbed the ball from Marcus Tudgay on the halfway line and ran into the area unchallenged before firing past Camp.
They doubled their lead five minutes after the break. Kieran Trippier got away down the right and outfoxed Cohen before supplying a cross for Gray, who headed home from close range.
After McGugan's 68th-minute penalty, Earnshaw scooped substitute Tyson's cutback over the bar before Barnsley failed to clear their lines and Tyson pounced on the loose ball to make it 2-2.
Nottingham Forest: Camp, Gunter, Chambers, Morgan, Cohen, McCleary (Tyson 54), Moussi, Majewski (Ramsey 54), McGugan, Earnshaw (Adebola 75), Tudgay. Unused substitutes: Smith, Wilson, Anderson, Lynch. Booked: Chambers.
Barnsley: Steele, Hassell, Shackell, Foster, Hill, Trippier, Arismendi, Doyle, Lovre (Colace 90), Hammill (O'Brien 88), Gray. Unused substitutes: Preece, Hayes, Butterfield, Bennett, Morales Neumann.
Referee: D Whitestone (Northamptonshire).
Man of the match: Kieran Trippier.