Sa seconde saison est plus difficile. Il affiche une moyenne élevée et a obtenu 4 victoires en 11 décisions lorsque San Diego le transfère aux Pirates de Pittsburgh le en compagnie du voltigeurJason Bay. Les Padres obtiennent le voltigeur Brian Giles dans l'échange. Perez subit la défaite dans ses trois dernières décisions de la saison avec Pittsburgh, complétant la saison 2003 avec un dossier de 4-10.
Le jeune gaucher s'impose chez les Pirates lors de la saison 2004. En 30 départs, il affiche une excellente moyenne de points mérités de 2,98 avec 12 victoires contre 10 défaites et 239 retraits sur des prises en 196 manches lancées. Son total de retraits sur des prises est le 4e plus élevé de la Ligue nationale et il mène les majeures avec une moyenne de 11 retraits sur trois prises par 9 manches lancées.
Après une saison de 7-5 en 2005, il connaît des débuts laborieux en 2006. Il n'a que deux victoires contre 10 défaites et une moyenne de 6,63 lorsque les Pirates l'échangent aux Mets de New York le 31 juillet. Pittsburgh se départ aussi du lanceur Roberto Hernandez et obtient des Mets le voltigeur Xavier Nady.
En 2007, Oliver Perez atteint un record personnel de 15 victoires. Il totalise 174 retraits sur des prises.
En 2008, son dossier est de 10-7 avec 180 retraits sur des prises. Son contrôle au monticule est cependant loin d'être parfait : il mène les majeures avec un total de 105 buts-sur-balles alloués à l'adversaire.
Le , Perez, devenu agent libre, s'entend avec les Mets pour 3 ans et 36 millions de dollars[2].
Lors de la saison 2009, celui qui avait mené la Nationale la saison précédente avec 34 départs n'amorce que 14 parties pour New York. Sa fiche est de 3-4 avec une moyenne élevée de 6,82. Il est placé deux fois sur la liste des blessés pour des tendinites au genou droit[3] et subit une intervention chirurgicale en août, ce qui met fin à sa saison[4].
Il est libéré de son contrat chez les Mets le [5].
Senators d'Harrisburg
Il signe un contrat de ligues mineures le pour la saison de 2011 avec les Nationals de Washington[6] mais ne joue pas avec l'équipe. Il passe l'année dans le Double-A chez les Senators d'Harrisburg, le club-école des Nationals dans la Ligue Eastern[7]. Il y maintient une moyenne de points mérités de 3,09 en 75 manches et deux tiers lancées, avec 3 victoires et 5 défaites en 15 départs et une sortie comme lanceur de relève.
Pérez fait un retour dans les majeures le avec les Mariners[9]. Seattle ne l'utilise que comme lanceur de relève. En 33 sorties au monticule en 2012, il présente une excellente moyenne de points mérités de 2,12 en 29 manches et deux tiers lancées, avec une victoire et trois défaites.
Le , il réussit contre les A's d'Oakland un premier sauvetage en carrière[10]. Sa moyenne de points mérités est de 3,74 en 61 sorties en relève pour les Mariners en 2013. Il réussit 74 retraits sur des prises en 53 manches lancées, remporte trois victoires, subit trois défaites et réalise deux sauvetages.
Il maintient une excellente moyenne de points mérités de 2,91 en 58 manches et deux tiers lancées lors de 68 présences au monticule, toutes en relève, pour Arizona en 2014.
En 48 sorties pour Arizona en 2015, Pérez maintient une moyenne de points mérités de 3,10 en 29 manches lancées au total. Lorsqu'un échange l'envoie à Houston, il n'avait pas accordé de point depuis 19 manches, pour la 3e plus longue séquence du genre de l'histoire des Diamondbacks[12].