A comical Morgan De Sanctis own goal just after the break and a smart Dries Mertens strike saw Rafael Benitez's gritty side fight back after Gervinho and a rocket shot by Kevin Strootman had put the home team on top at half-time.
"Starting the second half in such a farcical fashion didn't do us any good mentally, but we responded really well and won a really difficult match," said Roma midfielder Daniele De Rossi.
Roma are finally living up to their promise after years of fallouts and mishaps on the pitch and behind the scenes, and could yet win their 10th Coppa Italia this year.
"The last two years we've had really good sides with brilliant players but we were lacking mental toughness, and that's what all of us players here have tried to help create and develop."
Gervinho gave the hosts the lead when he latched on to a phenomenal Francesco Totti through-ball and delicately lifted the ball over Pepe Reina before rolling home into an empty net.
Strootman then drove home Roma's advantage with an unstoppable strike, only for De Sanctis to hand Napoli a lifeline when he let Gonzalo Higuain's deflected cross slip through his fingers and creep over the line.
Belgium international Mertens then levelled the match and, with two away goals, put his side into a commanding position in the tie when he burst past the Roma defence and emphatically shot over a prone De Sanctis with 20 minutes remaining.
However Gervinho sparked wild celebrations among the home support with his dramatic second, which he slotted home at Reina's near post after a sweeping passing move, giving his side a slight advantage going into a potentially explosive second leg.
"He can still get better," said Garcia after the former Arsenal striker took his tally of goals to four since the turn of the year.
"He needs the faith of his manager and above all his team mates because when he gets the ball he's always looking to cause problems to the opposition.
"At the moment everything's going well for him and when things go well for him they go well for the team."
A superb long-range strike by Luis Muriel eight minutes from time gave Udinese a 2-1 win over Fiorentina in the rain-soaked first leg of their semi-final on Tuesday with Francesco Guidolin's side looking for their first major trophy.