Neil Lennon's outfit remain top of Group E with two games remaining, seven points clear of third-placed Lazio after their second straight win over the Romans.
"It's great to have qualified with two games to spare," Celtic manager Lennon told uefa.com.
"It's too early to say how far we can go in this competition but we can be a difficult opponent for anyone."
Ciro Immobile volleyed the hosts into a seventh-minute lead, but James Forrest drew Celtic level before half-time with his 11th goal of the season.
Both sides wasted numerous chances in a wide-open second half, before French midfielder Ntcham had the final say.
The 23-year-old substitute latched onto his compatriot Odsonne Edouard's pass in the fifth minute of added time and dinked a cool finish over onrushing Lazio goalkeeper Thomas Strakosha.
"Realistically we have very little chance of qualifying. But never say never in football," said Lazio coach Simone Inzaghi.
It will be the third straight season that 1967 European champions Celtic have played in the last 32 after defeats by Valencia and Zenit Saint Petersburg at that stage in the previous two campaigns.
The other game in the group saw CFR Cluj move to within a point of qualification by beating Rennes 1-0 in Romania.
Former Barcelona winger Munir El Haddadi starred with a hat-trick as Sevilla thrashed Dudelange 5-2 to also reach the knockout rounds.
Record five-time winners Sevilla knew victory in Luxembourg would send them through from Group A and their one-sided win also sealed top spot.
Munas Dabbur opened the scoring before El Haddadi, who signed from Barcelona in January, tapped in the second before the half-hour mark.
The 24-year-old fired home a magnificent free-kick in the 33rd minute and completed his treble midway through the second half after Dabbur had made it four before the break.
Danel Sinani's late double restored some pride for the hosts, who are still in contention to progress despite sitting bottom of the group, one point behind APOEL and Qarabag after the Cypriot side's 2-1 win in Nicosia.
PSV Eindhoven, the 1978 winners, suffered a humbling 4-1 defeat by Austrian team LASK Linz to slip to third in Group D behind their opponents and Sporting Lisbon, who won 2-0 at Rosenborg.
Elsewhere, Standard Liege leapfrogged Eintracht Frankfurt into second in Group F behind Arsenal with a 2-1 victory over last season's semi-finalists.
Manchester United can qualify with a win against Partizan Belgrade at Old Trafford later on Thursday, while Roma visit German Bundesliga leaders Borussia Moenchengladbach.
UEFA Europa League results on Thursday:
APOEL (CYP) 2 (Souza 59, N. Ioannou 88) Qarabag (AZE) 1 (Medvedev 10)
Dudelange (LUX) 2 (Sinani 69, 80) Sevilla (ESP) 5 (Dabbur 17, 36, Munir 27, 33, 67)
FC Copenhagen (DEN) 1 (Stage 4) Dynamo Kiev (UKR) 1 (Verbic 70)
Lugano (SUI) 0 Malmo (SWE) 0
Basel (SUI) 2 (Cabral 8, F. Frei 60) Getafe (ESP) 1 (Mata 45-pen)
Krasnodar (RUS) 3 (Serkan Asan 27-og, Manuel Fernandes 34, Ignatyev 90+3) Trabzonspor (TUR) 1 (Nwakaeme 90+4)
LASK (AUT) 4 (Ranftl 56, Frieser 60, Klauss 78, 82) PSV Eindhoven (NED) 1 (Schwaab 5-pen)
Rosenborg (NOR) 0 Sporting Lisbon (POR) 2 (Coates 16, Bruno Fernandes 38)
CFR Cluj (ROM) 1 (Rondon 87) Rennes (FRA) 0
Lazio (ITA) 1 (Immobile 7) Celtic (SCO) 2 (Forrest 38, Ntcham 90+5)
Standard Liege (BEL) 2 (Vanheusden 56, Lestienne 90+4) Eintracht Frankfurt (GER) 1 (Kostic 65)
Rangers (SCO) 2 (Morelos 69, S. Davis 73) Porto (POR) 0
Feyenoord (NED) 1 (Berghuis 18-pen) Young Boys (SUI) 1 (Spielmann 71)
Espanyol (ESP) 6 (Melendo 4, Lopez 19, Vargas 36-pen, Campuzano 52, Pedrosa 73, Ferreyra 76) Ludogorets (BUL) 0
Ferencvaros (HUN) 0 CSKA Moscow (RUS) 0
Wolfsburg (GER) 1 (Victor 20) Gent (BEL) 3 (Yaremchuk 50, Depoitre 65, Ngadeu-Ngadjui 76)
Olexandriya (UKR) 2 (Bezborodko 84, Zaderaka 90+1) Saint-Etienne (FRA) 2 (Khazri 24-pen, Camara 72)
Borussia Moenchengladbach (GER) 2 (Fazio 35-og, Thuram 90+5) Roma (ITA) 1 (Fazio 64)
Wolfsberg (AUT) 0 Istanbul Basaksehir (TUR) 3 (Visca 73-pen, Crivelli 84, 87)
Wolves (ENG) 1 (Jimenez 90+2) Slovan Bratislava (SVK) 0
Braga (POR) 3 (Paulinho 15, 37 Wilson Eduardo 81) Besiktas (TUR) 1 (Boyd 29)
Astana (KAZ) 0 AZ Alkmaar (NED) 5 (Boadu 29, 77, Midtsjo 52, Idrissi 57, Hatzidiakos 76)
Manchester United (ENG) 3 (Greenwood 22, Martial 33, Rashford 49) Partizan Belgrade (SRB) 0
Vitoria Guimaraes (POR) 1 (Duarte 90+1) Arsenal (ENG) 1 (Mustafi 81)