Roma got the massive three points away from home thanks to a Paulo Dybala penalty and Lorenzo Pellegrini tap-in.
Antonio Candreva’s half-volley went straight at Rui Patricio from a tricky angle. His trademark curler also went over after nutmegging Edoardo Bove, while Norbert Gyomber made a sliding block on Romelu Lukaku’s effort.
The hosts continued their search for an opener as Rui Patricio was called into action when he went down at full stretch to fingertip away the Domagoj Bradaric daisy-cutter, and then Candreva blasted just over.
There was tension on the stroke of half-time as Rola almost got reduced to ten men. Lorenzo Pellegrini committed a late sliding tackle against Junior Sambia and received a yellow card. Salernitana and their fans demanded a red, but replays show he caught the opponent with the trailing leg.
Roma got rewarded a penalty straight after the restart, and Paulo Dybala made no mistake.
Cristante nodded a cross down onto Giulio Maggiore’s outstretched arm, and the referee pointed to the spot. Dybala sent Guillermo Ochoa the wrong way to convert and give the visitors the lead.
Nwankwo Simy, who almost scored with the first attack of the game, nodded over from five yards on the floated Candreva cross.
Roma made it two with a well-worked team move.
After cutting inside down the right, Dybala feinted a cross and released Rick Karsdorp with a back-heel flick. The right-back whipped the ball across for Pellegrini’s first-time tap-in at the back post.
Salernitana almost got a route back into the game moments later when Rui Patricio fumbled the Martegani effort from the edge of the box, but Diego Llorente was there to clean up.
They eventually halved the deficit as Loum Tchaouna’s cross found Grigoris Kastanos totally unmarked for a free header from six yards.
Roma then held on to win the tie despite several attacks from their hosts and a penalty appeal turned down.