Abreu progressed slowly, and (except for four games) did not advance out of Single-A until 2001, compiling an ERA of 4.64 in a full season at Double-A Greenville. After that season, he was traded to the San Diego Padres for Rudy Seánez, and then the following spring to the Chicago Cubs for Syketo Anderson, and after 11 appearances, released six weeks later. He was picked up by the Kansas City Royals, and finished the 2002 season at Double-A Wichita with a solid 3.32 ERA. At the end of the season, he was signed by the New York Yankees. He did not play in 2003 due to injury, and was released in January of 2004. He was signed by the Los Angeles Dodgers, had a few unimpressive outings, then released, and was then signed by the Arizona Diamondbacks, where he posted an ERA of 5.68 in Triple-A. In 2004, he was released again, played a bit in the Mexican league, and was signed by the Baltimore Orioles in December 2005.
In 2006, with the Orioles' Triple-A affiliate, the Ottawa Lynx, Abreu had his first good Triple-A season, appearing in 46 games with an ERA of 2.48, and, at age 29 finally was called up to the big leagues. Unfortunately for him, in his seven appearances, he pitched 8 innings, but allowed 10 hits, 6 walks, and 9 runs, for an ERA of 10.13
In 2007, the Washington Nationals signed him to a minor league contract, and he started the spring at Triple-A Columbus in an outstanding fashion, pitching 18 innings and allowing only one run. On May 8, he was called up, and in his first 11 appearances, had allowed runs in only two games, amassing an ERA of 2.31. But then over his next 8 appearances, he allowed runs in seven games, and his ERA ballooned to 6.38; on June 20, he was designated for assignment. Abreu was called back up in September when rosters expanded. Abreu finished the 2007 season with an 0–1 record with a 5.93 ERA in 26 games. He became a free agent after the season.
Before the start of the 2008 season, Abreu signed with the Chiba Lotte Marines of Japan's Pacific League.
On February 6, 2009, Abreu signed a minor league contract with an invitation to spring training with the Tampa Bay Rays. On June 14, 2009, Abreu's contract was purchased from Triple-A Durham to replace the injured Jason Isringhausen. On June 27, Abreu was designated for assignment by the Rays.
On July 2, 2009, Abreu was claimed off waivers from the Rays by the Cleveland Indians. During his tenure with the Indians, Abreu was given a three-game suspension after hitting Jack Hannahan with a pitch on July 25.
The Indians designated him for assignment on August 1, 2009. On August 5, 2009 though, he was outrighted to Triple-A Columbus.
On August 6, 2009, Abreu re-signed with the Rays and was assigned to Triple-A Durham.
On December 1, 2010, Abreu signed a minor league contract with the Toronto Blue Jays. He pitched for Triple-A Las Vegas, where in 53 games, he went 8-5 with a 3.66 ERA, striking out 72 over 66.1 innings
He pitched in 2012 with the Diablos Rojos del México of the Mexican League, where in 45 games, he went 4-1 with a 3.83 ERA with 15 saves, striking out 38 over 44.2 innings. He began 2013 with the Delfines del Carmen, before signing with the Rojos del Águila de Veracruz. In 11 appearances in the league that year, he went 2-0 with a 1.80 ERA with 3 saves, striking out 7 over 10 innings.
On May 7, 2013, Abreu signed with the Bridgeport Bluefish of the Atlantic League. Abreu re-signed with the Bluefish for the 2014 season.
Abreu signed with the Joplin Blasters for the 2015 season in their inaugural season. The Blasters play in the American Association of Independent Professional Baseball.
On June 24, 2016, Abreu signed with the Diablos Rojos del México of the Mexican Baseball League. He was released on September 23, 2016.
On April 20, 2017, Abreu signed with the Cleburne Railroaders of the American Association