Serie A: Milan 1 Udinese 0
The recalled Slovenian midfielder struck the decisive blow with a wonderful strike midway through the first half to give Massimiliano Allegri's side just their second win in six matches in all competitions.
Allegri made four changes from their last Serie A encounter against Juventus a fortnight ago as Gabriel came in for the injured Christian Abbiati in goal, while Matias Silvestre replaced the suspended Philippe Mexes and there were also places for Birsa and Andrea Poli.
Mario Balotelli missed out with a thigh injury, while Kaka returned to the bench after a month out with a similar problem.
For Udinese, there was just one change from their 2-0 win over Cagliari, with Roberto Pereyra replacing Nicolas Lopez.
In a quiet start, Birsa and Robinho threatened with shots from distance before Birsa opened the scoring midway through the half with a moment of real quality.
Milan won possession on halfway, broke at pace and worked the ball to Robinho, who laid it off on the edge of the box where Birsa was waiting to whip a left-footed shot up and over the dive of Ivan Kelava and into the top corner.
The visitors threatened little in the opening half hour, with Gabriel Silva's 25-yard effort that flew wide of the left-hand post in the 31st minute proving their first real shot on goal.
Dusan Basta had another long-range strike deflected wide five minutes later as Udinese struggled to make any impression on the Milan defence.
Nine minutes after half-time, Antonio Di Natale wasted a good opening after receiving the ball in space on the edge of the box, but his weak effort was comfortably saved by Gabriel.
The goalkeeper had to be at his best 10 minutes later however, diving high to his right and just managing to tip Di Natale's wicked dipping free-kick onto the crossbar and behind for a corner.
Poli almost doubled Milan's lead after jinking his way past two defenders in the 71st minute, but his powerful rising drive was parried behind by Kelava.
Substitute M'Baye Niang blazed over when well placed with six minutes remaining but it mattered little as Milan held on to seal the points.