The visitors, backed by at least 8,000 raucous fans, were on the back foot from the off with Ciro Immobile opening the scoring after seven minutes.
They dug in and started to give as good as they got with Forrest netting a fine equaliser. The second half was a topsy-turvy affair with both teams having chances to win it.
And it was Celtic who did it in the 95th minute of the match, pouncing on slack play from the home side with Ntcham showing his class to chip in the winner, handing the club their first ever win in Italy.
It was a difficult start for the vistors as they came under pressure immediately from the Italians.
Fraser Forster had to be alert to an effort from Manuel Lazzari after two minutes but there was nothing he could do about the goal which arrived five minutes later.
Left all alone at the back post, Immobile, one of the most dangerous forwards in Europe, volleyed home from close range.
It was a case of hanging in there for Neil Lennon's men as Immobile nearly escaped free before Christopher Jullien was close to heading past Forster.
The visitors steadied, growing into the game with Elyounoussi, Ryan Christie and Forrest motoring forward to support Odsonne Edouard.
And, of course, when the goal arrived it was Forrest. Slipped through by Elyounoussi on the right, he composed himself before smashing a shot across Thomas Strakosha and into the corner.
Come half-time, Celtic were somewhat fortunate to still be level. Lazio had three chances within a minute. Forster was required to save before Jullien cleared off the line after the goalkeeper missed a corner. Then, the third, saw Marco Parolo direct a great chance over the bar with his head.
The second half was quite a contest.
Celtic were first to go close, Edouard sending a shot into the stomach of Strakosha. It became end-to-end after that. Poor decision making cost the visitors from edging ahead after getting into promising positions on the counter-attack.
Just as the game seems like tipping one way it goes the other.
Lazio hit the post direct from a corner after Forster was forced to beat away a close-range header from Sergej Milinkovic-Savic.
Then with just over ten minutes remaining, Edouard gets the chance he has been waiting for after a fine lay-off from Elyounoussi. The Frenchman opened his body, ready to pass the ball into the bottom corner, but sent the shot agonisingly wide.
With Lazio seemingly not playing a defence as the game entered the closing stages, their pressure brought about two fine chances. Substitute Valon Berisha fired at Forster before the Celtic No.1 produced a fine save from another substitute, denying Luis Alberto.