The visitors, needing victory in the final fixture to go through into the knockout stages, deservedly took the lead in the 29th minute when Gary Hooper took advantage of a mix-up in the Udinese defence to tap in from a yard out.
However, veteran striker Antonio Di Natale notched from close range himself with seconds remaining in the first half after Celtic defender Cha Du-ri inadvertently headed into his path.
The second half was drama-filled with Neil Lennon’s side playing their part in an enthralling game but in the end, the draw was not enough.
The small band of travelling supporters certainly made themselves heard but in the week that they had been fined £12,700 by UEFA after the Hoops fans were reported for “illicit chanting” in a previous Europa League fixture against Rennes at Parkhead, it perhaps was not the best time to unfurl a banner which was derogatory in its sentiments towards European football’s governing body.
Nor was the throwing of a flare onto the running track by the Hoops fans too clever.
When the game started Celtic more than held their own in an impressive first-half display, inspired by Samaras and Forrest.
Celtic should have went ahead in the 23rd minute but Hooper wasted a great chance.
Samaras used his strength again before playing the former Scunthorpe striker in with a clever pass at the edge of the box but although Hooper’s angled drive from 16 yards beat Samir Handanovic, it went past the far post.
Hooper made up for his earlier miss when he gave Celtic the lead, albeit there was a hint of good fortune about the goal.
Samaras was again involved with a cross from the left which Handanovic punched off his own defender, Joel Ekstrand, and the ball fell kindly to the Englishman who tapped into the empty net from a yard out.
It was all going to plan for the Parkhead club but seconds from the interval Cha made a mess of a header when he was challenged by Kwadwo Asamoah, allowing Di Natale to volley past Forster from close range, although the Italian international had looked to be in an offside position when Almen Abdi’s cross came into the box.
Udinese appeared more focused and determined and in the 56th minute Hoops defender Daniel Majstorovic made a great blocking tackle on Di Natale’s goal-bound shot.
Amid the growing tension, Cha was booked in a case of mistaken identity when it should have been Brown.
Forster made fine saves from Di Natale’s drive and substitute Mauricio Isla’s back-post header, before he made another decent stop from Asamoah’s long-range effort.
As Udinese piled on the pressure, and after Stokes replaced Beram Kayal, Asamoah struck the post from three yards out when it looked as if he must score.
But in the 75th minute Cha struck the post with a shot which Handanovic allowed to then escape his grasp and almost trundle over the line.
More confusion arrived when Cha was booked again, this time for a foul on Armero, but referee Michail Koukoulakis did not send him off, appearing to have rectified his earlier mistake.
Amid almost breathtaking excitement Forster made two great saves from Di Natale before Mo Bangura replaced Samaras.
There was a penalty claim for handball in the Udinese box as Celtic threw everything forward in the final minutes.
Group winners Atletico topped the group with a 3-1 win over Rennes. Radamel Falcao’s penalty plus further strikes from Alvaro Dominguez and Arda Turan gave them a comfortable lead before Georges Mandjeck’s late consolation.
PAOK played out a one-all draw at home to also qualified Rubin Kazan with Vieirinha on target for the home side from the penalty spot after 16 minutes before Haedo Valdez equalised after the break.
Adam Maher’s equaliser earned Dutch Eredivisie leaders AZ Alkmaar the point they needed to progress as runners-up from Group G after a 1-1 draw with group winners Metalist Kharkiv.
Austria Vienna defeated Malmo a 2-0 win through goals from Michael Liendl and Nacer Barazite but failed to qualify from Group G
In Group H, Club Brugge claimed the point they needed to guarantee qualification as group winners in a 1-1 draw with Braga, who had already secured progression to the knockout stages.
Brugge led through Bjorn Vleminckx’s 50th-minute strike. Braga had Uwe Echiejile sent off for a professional foul after 16 minutes but equalised in the 64th minute through Ewerton.
The result meant Birmingham missed out on a place in the last 32 despite ending their campaign with a 1-0 win over Maribor.
UDINESE: Handanovic, Benatia, Danilo, Ekstrand, Basta, Agyemang-Badu, Asamoah, Doubai, Armero, Abdi, Di Natale.
Subs: Pinzi for Agyemang-Badu (29), Isla for Asamoah, Doubai (h/t).
CELTIC: Forster, Cha, Majstorovic, Wanyama, Mulgrew, Forrest, Brown, Kayal, Ki, Samaras , Hooper.
Subs: Stokes for Kayal (71), Bangura for Samaras (83).
Referee: Michail Koukoulakis (Greece).