Balotelli gave Nice the lead in the 32nd minute at the Allianz Riviera, tucking home after good work down the right from Jean Michael Seri.
Donny van de Beek scored a potentially crucial away goal however four minutes after the restart as he took advantage of Yoan Cardinale's poor punch to fire in on the volley.
Van de Beek held up the number 34 with his fingers in celebration, a tribute to midfielder Abdelhak Nouri, who suffered brain damage when he collapsed in a pre-season game with Werder Bremen this month.
Before the game Ajax players also wore shirts with the message 'stay strong Appie', while the travelling fans unfurled banners in support of the 20-year-old.
Dynamo Kiev took a big step towards the play-off round with a 3-1 win over Young Boys, Andriy Yarmolenko, Dieumerci Mbokani and Denys Garmash all on target for the hosts.
But two teams who also played in last season's group stage are in danger of being knocked out after Legia Warsaw and Ludogorets both suffered defeats.
Legia - who held Real Madrid to a 3-3 draw last term - were beaten 3-1 by Astana, while Ludogorets, having gone toe to toe with Arsenal and Paris Saint-Germain in 2016, lost 2-0 to Hapoel Be'er Sheva. RB Salzburg were held 1-1 by Rijeka.
The most entertaining tie of the night came as Club Brugge drew 3-3 with Istanbul Basaksehir, Stefano Denswil equalising for the Belgian side 11 minutes from time with his second goal after Mossoro's double had helped Basaksehir come from 2-0 down to lead.
Despite Denswil's efforts, Club Brugge travel to Turkey next week knowing they have to score to have any chance of progressing.
Elsewhere, Viitorul beat APOEL 1-0 but had George Tucudean sent off late on and Maribor overcame FH of Iceland by the same scoreline.