The visitors made the perfect start and took the lead in the second minute when Miralem Pjanic raced onto Alessandro Florenzi's through ball, before clipping an effort over Stefano Sorrentino and into the far corner.
© Getty Images
Luca Rigoni was next to threaten for the hosts when he latched onto Vazquez's pass and worked some space before drilling a strike wide of the post.
The hosts were soon punished for those misses as Roma doubled their lead through Florenzi, who collected Pjanic's scuffed attempt inside the box, before turning and firing a strike past the keeper.
Roma continued to dominate and they grabbed a third goal in the 27th minute when Gervinho skipped by a number of challenges and crashed a strike into the top corner from just outside the box.
Palermo almost grabbed a quick equaliser, but Vazquez's towering header was touched onto the crossbar by Szczesny.
© Getty Images
Radja Nainggolan and Pjanic both had chances to add to Roma's lead before the break, but their efforts were saved by Sorrentino as the visitors ended the half in complete control.
However, Palermo were given a lifeline just before the hour mark, as Alberto Gilardino brought down Vazquez's raking pass, before cutting onto his left foot and sliding a low effort past Szczesny.
The goal provided a huge boost of confidence for the hosts and they almost added a second when Abdelhamid El Kaoutari met Robin Quaison's corner at the near post, before seeing his effort saved by Szczesny.
Palermo further boosted their hopes of a comeback when Giancarlo Gonzalez scored a header a minute into stoppage time, but just moments later Gervinho burst through and added a fourth for Roma to finally seal the points and help his team move up to third in the Serie A table.