Early first-half strikes from Marco Borriello and Andrea Bertolacci saw the hosts into a two goal lead that they took to the interval following an abject Lazio first half performance.
An improvement in the second period was rewarded with a fine strike from Sergio Floccari just shy of the hour before Stefano Mauri levelled things up from the penalty spot with 82 minutes gone.
Lazio pushed for the win but Rigoni headed the winner deep into stoppage time.
The Biancocelesti dropped down to third place after last week’s home defeat to Chievo and, although their week improved with the second-leg semi-final Coppa Italia victory over Juventus during the week, Vladimir Petkovic was without Hernanes due to a head injury.
New coach Davide Ballardini saw his charges hold league leaders Juventus to a contentious draw last weekend and gave debuts to new signings Daniele Portanova and Mattia Cassani as they looked to improve upon a league position of 18th.
As is oft the case under new management, the Rossoblu began with a sense of purpose and had the lion’s share of possession during the early exchanges whilst the Biancocelesti were reticent in attack and lacklustre at the back.
With only 16 minutes on the clock, Borriello capitalised on a lax clearance at a corner to steady himself with a nice piece of chest control before lashing an effort past Federico Marchetti from just outside the six-yard box.
Lazio’s malaise continued as they offered their hosts little threat going forward and plenty of time and space when in defence and Bertolacci was next to take advantage when, having received the ball from Juraj Kucka, the support striker ran at the defence before beating Marchetti with a well-struck effort from 25 yards out.
Lazio were abject for much of the half and their only chance of reducing the arrears came in the penultimate minute of the half from a set-piece situation but Ledesma and Álvaro Gonzalez made an absolute hash of it to ensure the relegation-threatened hosts went to the interval with a two goal advantage.
A dramatic second-half improvement saw Lazio halve the deficit with 58 minutes on the clock when Floccari took down a clipped Senad Lulić through-ball to thrash past Sébastien Frey from close range.
Genoa ceded the initiative and Abdoulaye Konko should have restored parity with 75 minutes gone but contrived to poke his own saved effort wide with the goal at his mercy.
Despite that miss, Lazio were given the opportunity to level things up when Borriello hauled down Lorik Cana inside the box and Mauro made no mistake from twelve yards.
With the points up for grabs, both sides went for the win and Genoa hit the bar through a Kucka header before Rigoni dispatched a Andreas Granqvist flick-on past Marchetti to send the home faithful into raptures as they celebrated the win.
Siena also pulled off a big result with a 3-1 victory over 10-man Internazionale in a game which saw Cristian Chivu given a straight red in conceding what would be the match-sealing penalty kick.
Fiorentina defeated Parma 2-0, but Pescara and Palermo failed to secure home wins of their own, falling 3-2 to Bologna and 2-1 to Atalanta respectively.