- Eldor Shomurodov (76')
- David Okereke (1')
- Sofian Kiyine (32')
- Don't have ESPN? Get instant access
Roma were handed the chance to level after Venezia midfielder Sofian Kiyine was penalised but Pellegrini sent his penalty against the woodwork in the 19th minute.
Kiyine, on loan from Roma's local rivals Lazio, was sent off in the 32nd minute for pushing Pellegrini and kicking out at him.
Pellegrini had an opportunity to make amends in the 56th minute but his spot-kick hit the top of the crossbar.
Roma striker Eldor Shomurodov grabbed the equaliser when he smashed the ball home from a rebound in the 76th minute.
He had previously found Pellegrini with a brilliant back heeled pass but his team mate's shot was saved by keeper Niki Maenpaa.
Roma will face Dutch side Feyenoord in the Europa Conference League final on May 25 after their last league game of the season at 10th-placed Torino.
"Winning a competition would be something we deserve not only for us but also for the supporters who are always behind us," Roma manager Jose Mourinho told Italian Sky Sport.
"The family is always there when we win but everything is different when things do not go in the right direction: we gave everything, we should have crushed it."
Perotti burst into tears at the end of the match as his team stayed 17th in the table, two points ahead of relegation-threatened Cagliari who play Inter Milan on Sunday.
Spezia won 3-2 at Udinese to ensure they will stay in the top flight. Udinese defender Nahuel Molina opened the scoring in the 26th minute but goals by winger Daniele Verde and forward Emmanuel Gyasi put Spezia ahead.
A goal early in the second half by midfielder Giulio Maggiore extended Spezia's lead and a late consolation goal by midfielder Giulio Maggiore was not enough for Udinese, who remained 12th in the standings.
A goal by winger Josip Brekalo earned Torino a 1-0 win at Verona as they stayed 10th, two points behind their hosts.
- Simone Sozza