And the win breathed new life into their hopes of grabbing the second qualifying place in Group E behind runaway leaders Bayern Munich.
Claudio Ranieri's team had been humiliated 3-1 by the Swiss at the Stadio Olimpico a fortnight ago - but goals from Jeremy Menez, Francesco Totti with a penalty, and substitute Leandro Greco saw them move onto six points.
But the match finished with Valentin Stocker shown a second yellow card for a foul on Totti, and being sent off. In truth, he could have gone much earlier, both for the penalty conceded on John Arne Riise, for a horrendous challenge on Nicolas Burdisso.
Basel's victory in the Stadio Olimpico a fortnight ago ensured that three teams went into Matchday Four with a great chance of snatching second place.
Thorsten Fink's team and Roma were two of those, along with Romanians Cluj, locked on three points going into Wednesday night's encounters.
For Basel, there was also the huge carrot of qualifying for the knockout stages for the first time since the 2002-03 season and they came into the game in good heart, back on top of the Swiss League and with coach Fink also having just been awarded a two-year contract extension until 2013.
Roma desperately needed a victory to re-establish their credentials in the group, and started with the dangerous Montenegro forward Mirko Vucinic up front, with captain Francesco Totti - sent off against Lecce at the weekend - playing in his favoured No10 role just off the main striker.
It started well for the Swiss team. They pressed Ranieri's men all over the pitch in the opening quarter of an hour, and rained in several shots albeit failing to regularly hit the target.
Valentin Stocker had an early effort charged down - but squandered a great opening after 11 minutes. Stocker headed down for Benjamin Huggel in the six-yard box, but incredibly with a goal a near-certainty Julio Sergio managed to smother it practically on his own line.
Roma responded in positive fashion and it was Vucinic who inspired them to breaking the deadlock after 16 minutes. His rampaging run ended with what looked a foul, but referee Bjorn Kuipers allowed play to continue.
The loose ball was seized on by Frenchman Menez, and he coolly fired it past Franco Costanzo.
It was as if Roma had suddenly woken up to the situation both in the group, and the match - and they began to look like world-beaters. Vucinic almost set up another goal for Menez, but the midfielder could only fire wide.
But Roma only had to wait until the 25th minute to double their lead, and this time it was Riise, the former Liverpool man, who got forward from full-back to win a penalty. Stocker pulled him down, and escaped with only a booking.
Captain Totti took the responsibility from the spot, and duly smashed his kick past Costanzo to leave Fink's men with a mountain to climb.
After the break Frei took advantage of a terrible mistake from Roma goalkeeper Julio Sergio, but substitute Greco almost immediately lashed in a third for the visitors. Shaqiri then gave the home fans some false hope - but Roma saw the game out.