Sinisa Mihajlovic's men were unable to break down a resolute Udinese back-line and find the decisive winner despite considerable pressure throughout the second period
Niang, who achieved the scoring feat for the first time in his career in Italy, fired home in the third minute of the second half to earn Milan a point after Pablo Armero had handed the visitors the lead against his former club early on.
The Rossoneri went into the game looking to extend a three-match winning run and had numerous chances in front of goal, but Udinese keeper Orestis Karnezis was in fine form on a sodden and blustery afternoon and Andrea Bertolacci cannoned an effort against the crossbar in the dying moments.
The visitors were not outplayed by Sinisa Mihajlovic's side, however, and could well have recorded a first victory in six matches had Francesco Lodi not fluffed a golden chance a matter of seconds before Niang's equaliser.
During a slovenly start to proceedings, Zdravko Kuzmanovic dragged an early shot wide for Udinese before the visitors took the lead in the 17th minute.
Gianluigi Donnarumma produced a terrific double save to deny Cyril Thereau and Kuzmanovic but the Milan goalkeeper's heroics came to nothing, as Armero bundled home while the hosts' defence stood motionless.
Conceding for the first time in more than five hours of action seemed to spark Milan into life and Carlos Bacca thought he had levelled the game in the 32nd minute.
However, the Colombian saw his close-range header correctly disallowed for offside and, for all their domination of possession for the remainder of the first period, the Rossoneri could only fashion one shot on target before the break. Karnezis was barely tested by Riccardo Montolivo's 25-yard effort and Milan still trailed at half-time.
Mihajlovic threw on Mario Balotelli for the second half in an effort to change the game and the forward should have done better than curl wide from 15 yards with his first touch less than a minute after the restart, and Lodi side-footed straight at Donnarumma as Udinese failed to capitalise.
The breakneck speed of the second period was unrelenting, and Milan cantered down the other end to equalise. Bacca's well-weighted pass played in Niang who had time to pick his spot across Karnezis and find the bottom, left-hand corner.
Karnezis produced a sensational save to deny Bacca, keeping out the Colombian's point-blank header after Niang flicked on a free-kick.
Balotelli's low free-kick was then comfortably saved by Karnezis, Bertolacci thrashed a shot against the frame of the goal - which almost rebounded into the net - and Montolivo stung the Greek goalkeeper's palms once more but, for all their huff and puff, Milan could not find a winner.