In a hectic finale, Giovanni Simeone's header from the opening moments of the second half was cancelled out by an 83rd-minute effort by Genoa's Christian Kouame, only for Cristian Zapata's own goal to put the hosts back in front a minute later.
Joao Pedro then added a third in the 87th minute for Cagliari, who had won 3-1 at Parma on Sunday.
They are up to eighth in Serie A ahead of the weekend's action, while Genoa slip to 12th.
The match was Cagliari's first at the Sardegna Arena since the 2-1 loss to Inter Milan on September 1 in which supporters allegedly aimed racist abuse at Inter's Romelu Lukaku.
Following an investigation, the sporting justice panel of the Italian Football Federation (FIGC) ruled that the chants could not be considered discriminatory in terms of their "scale and realisation", so therefore decided not to apply sanctions to Cagliari.