Lodi started his career as part of Empoli youth system, being later promoted to the first team in 2003, despite his senior debut came during the 2000–01 season. During the winter transfer market, Empoli opted to loan the player out to Vicenza, in Serie B, for the player to gain regular playing time. He went on to make 11 appearances for the biancorossi before returning to Empoli for the 2004–05 season, following their relegation. In his first full season with the Tuscan side, Lodi made 27 league appearances, scoring six goals and helping them earn instant promotion back to Serie A. Lodi remained with Empoli, his first full season in Serie A. The midfielder made just 17 appearances, however, and failed to hold down first team football. He scored no goals.
For the 2006–07 season, Empoli loaned Lodi to Serie B side Frosinone for €50,000. Lodi instantly earned a starting role with the club, making 40 appearances out of a possible 42, scoring 11 goals. Despite his form, Empoli opted to keep the player at the Latium-based club in co-ownership deal for €1.4 million, where Lodi would continue his form. He went on to make 41 appearances for the second division side and scored a very impressive 20 goals as a midfielder. In January 2008, Empoli also bought back the 50% registration rights from Frosinone for €800,000.
Return to Empoli
Following Empoli's relegation from Serie A, the loan was not re-newed and the player spent the 2008–09 season with Empoli. He again performed with high standards, making 41 appearances and scoring 13 goals in league play. His form over the span of three seasons led to interest from a host of Serie A clubs, including Udinese, Atalanta and Chievo. At the start of the 2009–10 season, Lodi scored three goals in the first three games of Empoli's season, later joining Udinese on loan for the remainder of the 2009–10 season.
Udinese
On 28 August 2009, Lodi officially joined Udinese on loan from Empoli. During the season, Lodi found first team football hard to come by due to the presences of established midfielders Alexis Sánchez, Mauricio Isla, Gökhan Inler and Kwadwo Asamoah. Lodi went on to make 19 league appearances, scoring one goal. Udinese did not use the option to purchase the player outright, and he returned to Empoli on 30 June 2010.
Return to Frosinone
Following his Serie A top flight experience with Udinese, Lodi returned to Empoli but was instantly sold to Frosinone again on a co-ownership deal, for €300,000. In his return to Frosinone, Lodi returned immediately to first-team football, making 23 appearances and scoring seven goals prior to the January transfer market, in which he again transferred clubs.
On 31 January 2011, Catania bought Lodi from Frosinone for €680,000, with Empoli retained 50% registration rights. Lodi also immediately joined Catania for the remainder of the 2010–11 season, in a two-and-a-half-year contract. His first two appearances for the Sicilian side were very low key, but on 13 February 2011, Lodi scored two fantastic free-kicks in a comeback 3–2 victory for Catania over Lecce. Lodi was also the scorer of a stunning free-kick against Juventus in the 96th minute of play, ending the game in a draw for Catania. In June 2011, Catania purchased Lodi outright for another €300,000. He has since made 83 league appearances for the club, scoring 18 goals. He also scored three goals in four appearances in the 2012–13 Coppa Italia.
On 3 July 2013, Catania sent Lodi to Genoa in exchange Panagiotis Tachtsidis in a cashless player swap. Both clubs retained 50% registration rights. The deal finalized in mid-July.
Return to Catania
Lodi returned to Catania just six months after leaving the club, scoring a goal and providing an assist for Gonzalo Bergessio in his first match back, helping his club to defeat Bologna 2–0 at the Stadio Angelo Massimino. In June 2014, the co-ownership deal also terminated.
On 23 September 2015, Lodi rejoined former club Udinese as a free agent. He left the club on 17 February 2017.
Second return to Catania
After his contract at Udinese got terminated, the director of Catania confirmed on 2 March 2017, that Lodi was the first signing for the 2017–18 season.
Triestina
On 8 January 2020 he signed a 1.5-year contract with Serie C club Triestina.