The promising youngster spared the San Siro outfit's blushes after the visitors had gone ahead in the first half
The Serie A champions started the match brightly and were looking to get forward early on, and in the ninth minute Alexandre Pato met Antonio Cassano's curling cross, but the Brazil international dragged his header wide.
This turned out to be the striker’s only real contribution to the game as 10 minutes later he was withdrawn with a hamstring injury, being replaced by El Shaarawy.
Five minutes later and Udinese had their first chance to open the scoring as Gabriel Torje found some space down the left and with Di Natale waiting in the box, he tried to get his cross in, but unfortunately for the young Romanian his delivery went straight to Christian Abbiati.
A few minutes later and the away side got their goal through star man Di Natale. Torje again curled in a cross from the left wing, this time however a fumble from Abbiati left the captain with a simple finish to silence the San Siro faithful.
Just before half-time the home side came close to levelling matters, with a well struck free-kick from Clarence Seedorf crashing against the post, after Cassano had been brought down on the edge of the box.
Milan looked desperate to find the equaliser after the interval and their first real chance came in the 58th minute. After a great chipped ball from Seedorf found Cassano in the box, the Italian controlled neatly with his chest, but his shot on the turn was pushed away by Samir Handanovic.
Less than five minutes later, though, and the home side were level thanks to a great finish from El Shaarawy. The youngster received the ball on the right side of the box and made no mistake in guiding his low finish into the far corner.
In the last 15 minutes the visitors looked the more likely to win the game with substitute Giampiero Pinzi striking the post with a low drive, before Abbiati pulled off a great save to deny Di Natale in the closing minutes.
Milan are still without a win after three games and will be looking for an improved result away at Cagliari this weekend, while Udinese will be hoping to continue their fine run at home to Cesena in the next round of Serie A.