Adrian Silva led the hosts in the 45th minute, and Jakob Yantko added the second goal in the 65th minute.
Eden Djeko missed a penalty kick for Roma in the 71st minute.
The victory of Sampdoria raised its score to 45 to take the ninth place.
As for Roma, it freezes its balance at the point 55 to occupy the seventh place.
Adrian Silva became the second Portuguese player to score for Sampdoria in the Italian league, after Bruno Fernandes in the 2016-2017 season.
Djikko continued to miss the penalty shootout, as the penalty kick was the third in a row that he failed to score.
Djikko hit 6 penalties this season in the Italian League, but he only scored 3 kicks, with a success rate of 50%.
The defeat is the second in a row for Roma in the Italian league, after losing against Cagliari in the last round.
Roma will play Crotone in the next match, while Sampdoria will play Inter.