Injury-hit AC Milan edged visiting Udinese 1-0 for just its third win in eight Serie A matches on Saturday.

Slovenia midfielder Valter Birsa scored with a long, curling shot following an exchange with Robinho in the 22nd minute at the San Siro.

''We played a great match,'' Milan midfielder Andrea Poli said. ''We haven't had the results that are necessary for this club. Sometimes that's due to bad luck but this squad has a lot of heart and a lot of desire to do well and we showed that tonight.''

Milan moved up to seventh place, 13 points behind leader Roma , which defeated Napoli 2-0 on Friday to stretch its winning start to the season to eight matches.

Udinese came close when former Italy forward Antonio Di Natale hit the crossbar with a free kick in the 63rd but the northeastern club still dropped one point behind Milan.

Milan meets Barcelona in the Champions League on Tuesday.

Earlier, Cagliari beat 10-man Catania 2-1 in its first match at its Sant'Elia Stadium home in 1 1/2 years.

Milan was originally ordered to play Udinese behind closed doors as punishment for insulting chants by the club's fans during a match at Juventus . But the league suspended its decision as it continues to debate territorial chants, in which fans use slogans that insult the opposing club's city or geographical area, often in graphic terms.

Milan could be in for further punishment, however, as fans continued to insult southern rival Napoli.

Milan lost goalkeeper Christian Abbiati to a calf injury in the morning and was already without forwards Mario Balotelli, Stephan El Shaarawy, Giampaolo Pazzini and defenders Mattia De Sciglio and Daniele Bonera due to physical problems. Also, Philippe Mexes and Nigel de Jong were suspended.

Gabriel, a 21-year-old Brazilian, started in goal for Milan and earned a clean sheet. Birsa directed Robinho and Alessandro Matri in attack.

Milan had chances to take a two-goal lead but Udinese goalkeeper Ivan Kelava denied Poli in the 73rd after the midfielder faked his way past two defenders.

Back from injury, Kaka replaced Matri for the final 13 minutes and provided a perfect setup for M'Baye Niang but the 18-year-old forward shot high just in front of the goal.

It was Kaka's first appearance with Milan at the San Siro since rejoining from Real Madrid .

In Sardinia, Mauricio Pinilla scored the winner for Cagliari in the 84th by converting his own rebound.

Gonzalo Bergessio put Catania ahead five minutes in, Victor Ibarbo equalized in the 26th and the visitors were reduced to 10 men in the 40th when defender Nicola Legrottaglie was sent off for a last-man foul.

Cagliari's stadium had been closed for safety concerns, prompting the team to play home games in Trieste, Parma and the nearby Sardinian town of Quartu over the past two seasons.

Still, only 5,000 of the 21,500 seats were opened.