Donati started his club career at Atalanta, before moving to Milan in June 2001 along with Cristian Zenoni for 60 billion lire in a cash-plus-player deal. However, due to the competition at the club, Donati was unable to retain a first team place after his first season, spending the 2002–03 season on loan at Parma and then Torino. The 2003–04 season, his third as a Milan player, saw him join Sampdoria on loan, before enjoying a successful spell at Messina for the 2004–05 and 2005–06 seasons. Despite finding his form at Messina, Donati still found himself out of favour at Milan and was again sent on loan, this time returning to his first club Atalanta for the 2006–07 season. Donati was a youth international, representing Italy at under-16, under-18, under-20 and under-21 levels.
Celtic
On 29 June 2007, Celtic confirmed the signing of Donati on a four-year contract for a fee of €2 million. Donati was given the number 18 jersey, vacated by ex-captain Neil Lennon and was unveiled at Celtic Park. He made his Celtic debut in their first league game of the season on 5 August, a 0–0 draw with Kilmarnock. In Celtic's next league game against Falkirk, Donati was involved in his side's equaliser when his shot hit Kenny Milne and went into the net; Celtic won the game 4–1. The following week, Donati grabbed his first competitive Celtic goal with an equalising goal against Aberdeen and later added an assist for Kenny Miller as Celtic won 3–1. On 28 November, Donati won the match for Celtic in the UEFA Champions League fixture against Shakhtar Donetsk, netting in the 92nd minute to win the match 2–1. This result meant Celtic only needed a point away to Donati's former club Milan at the San Siro to qualify for the last 16 stage of the tournament. Celtic lost 1–0 to Milan, but still qualified for the last 16 as runners-up in their group after Benfica defeated Shakhtar in Ukraine. As the season went on, Donati's form began to dip, resulting in the central midfield positions being changed with Barry Robson and Paul Hartley in place of Donati and Scott Brown. In May 2008, it was reported that Donati wanted to go back to Serie A. In the 2008–09 season, Donati made only a handful of appearances for Celtic, though he started in the home game against Kilmarnock on 12 November 2008 and won the man of the match award. After the appointment of Tony Mowbray as Celtic manager, Donati won back his place in the Celtic midfield alongside new signing Landry N'Guémo. Donati played in most of the pre-season games and scored in a 5–0 win over African Champions League winnersAl-Ahly in the Wembley Cup. He started the 2009–10 campaign in fine form and scored from a spectacular volley in Celtic's 3–1 loss to Arsenal in the Champions Leagueplay-off.
Bari
On 27 August 2009, Donati left Celtic and signed a four-year contract with Serie A newcomers Bari.
Palermo
On 18 January 2012, Donati left Bari for Palermo in Serie A.
Hellas Verona
In June 2013, Donati was signed by Hellas Verona.
Bari
On 26 August 2014, Donati returned to Bari. He scored his first goal in the 2014–15 Serie B season on 13 September 2014, during a 1–1 draw with Frosinone.
Hamilton Academical
On 18 July 2016, Donati returned to Scotland to sign for Hamilton Academical. He scored on his debut as Hamilton won 3–0 against St Mirren in the Scottish League Cup. On 9 November 2016, Donati signed a new contract, keeping him at the club until 2019. In January 2018, Hamilton announced that they had agreed with Donati to cancel his existing playing contract, in order for him to begin a coaching career. Donati had also been coaching the Hamilton under-15 team.
St Mirren
Donati signed a short-term contract with St Mirren in February 2018. He was released by St Mirren at the end of this contract.