Peralta signed with the Anaheim Angels as a minor league free agent on February 25, 1999. The Angels converted him to a pitcher and he was 2-3 with 12 saves and a 2.50 ERA for the Angels affiliate in the DSL.[1] He moved to the U.S. in 2000 to play for the Butte Copper Kings in the Pioneer Baseball League and the Boise Hawks of the Northwest League. Between the two leagues he was in 14 games and was 2-1 with a 6.59 ERA in 14 games.[2] In 2001, he pitched in 41 games for the Cedar Rapids Kernels of the Midwest League with a 2.13 ERA and 23 saves,[2] which ranked second in the Midwest League.[1] He was promoted to the AA Arkansas Travelers of the Texas League where he had a 6.30 ERA in nine games with 2 saves.[2] His 2002 season was also split between Cedar Rapids & Arkansas, appearing in 53 games with a 5-0 record, 2.49 ERA and 21 saves combined between the two leagues.[2]
Peralta spent the 2003 season with Arkansas and was 5-4 with a 2.24 ERA in 47 games with 20 saves.[2] He also made his AAA debut, walking the one batter he faced on August 2 for the Salt Lake Stingers of the Pacific Coast League.[1] He spent all of 2004 with Salt Lake and was 4-2 with a 4.98 ERA in 39 games with 21 saves.[2] He started 2005 back in Salt Lake and was 3-1 with a 2.84 ERA in 18 games with 10 saves.[2]
Peralta made his Major League Baseball debut on May 25 for the Angels against the Chicago White Sox. He came into the game in the seventh inning with two outs and two on and struck out Tadahito Iguchi swinging to end the inning. He wound up pitching two more innings, and did not allow a baserunner while striking out four in the game.[3] He worked 34.2 innings in 28 games for the Angels with a 3.89 ERA and one win (July 6 against the Minnesota Twins).[4]
Kansas City Royals
On October 7, 2005, he was selected off waivers by the Kansas City Royals from the Angels.[5] He played three seasons with the Royals, with a 3-8 record and 4.54 ERA in 166 games.[6]
Colorado Rockies
He signed with the Colorado Rockies as a free agent on April 8, 2009 after being released by the Royals at the end of spring training.[1] He split the season between the AAA Colorado Springs Sky Sox and the Rockies. With the Sky Sox, he was 6-0 with a 2.45 ERA in 31 games[2] and with the Rockies he was 0-3 with a 6.20 ERA in 27 games.[6]
Washington Nationals
At the end of the 2009 season, he became a free agent, and was signed to a minor league contract by the Washington Nationals. He had an outstanding 2010 for AAA Syracuse, saving 20 games without any blown saves, compiling a 1.08 ERA. On June 21, he was called up to join the Nationals as an eighth reliever,[7] and the next night made his 2010 debut, pitching to one batter and inducing a double play. He was in 39 games for the Nationals and was 1-0 with a 2.02 ERA.[6] Peralta was non-tendered following the 2010 season, to avoid giving him a raise in arbitration.[8]
Tampa Bay Rays
On December 17, 2010, Peralta signed a one-year contract with the Tampa Bay Rays, receiving $900,000.[9] He appeared in 71 games for the Rays, second most in the American League and was 3-4 with a 2.93 ERA and 6 saves.[6] He also made his first postseason appearance, pitching in three games in the 2011 American League Division Series against the Texas Rangers.[10]
He was eligible for salary arbitration after the season but signed a new one-year contract with the Rays[11]
On June 19, 2012, during a game at Nationals Park vs the Washington Nationals, Peralta was ejected from the game for having a "foreign substance" in his glove; it was later found to be pine tar. Peralta was subsequently suspended eight games by Major League Baseball.[12][13] In the 2012 season he was in 76 games with a 3.63 ERA and a 2-6 record.[6] He also led the Majors with 37 holds, the highest total since the stat had been recorded.[1]
On November 4, 2012, Peralta signed a two-year, $6 million deal, with club options for 2015 and 2016. Andrew Friedman, the Rays Executive Vice-President of Baseball Operations said of him at the time, “We love Joel’s competitiveness and the impact he has on the younger pitchers in our bullpen.”[14] He made a career high 80 appearances in 2013, leading the Majors and setting a club record for a right-handed pitcher and his third straight 70-plus appearance season.[1] He was 3-8 with a 3.41 ERA.[6] He pitched one scoreless inning in the 2013 American League Wild Card Game against the Cleveland Indians[15] and made two scoreless appearances in the 2013 American League Division Series against the Boston Red Sox.[16] Peralta appeared in 69 games in 2014 and was 3-4 with a 4.41 ERA.[6]
Los Angeles Dodgers
He was traded to the Los Angeles Dodgers on November 20, 2014 (along with Adam Liberatore) for Jose Dominguez and Greg Harris.[17] He was placed on the disabled list at the end of April with a nerve problem in his right triceps. He managed to avoid a potentially career ending injury and rejoined the team at the end of June.[18] In 33 games for the Dodgers, he was 3–1 with a 4.34 ERA and 3 saves.[19] After the season, the Dodgers declined his 2016 option, making him a free agent.[20]
Seattle Mariners
On February 9, 2016, Peralta signed a minor league contract with the Seattle Mariners that included an invitation to major league spring training. On June 6, 2016, he was released.
Chicago Cubs
On June 10, 2016, Peralta signed a minor league contract with the Chicago Cubs.[21] On September 16, 2016, Peralta made his statement to retirement.
Pitching style
Peralta throws three pitches: a four-seam fastball at 90–92 mph, a splitter at 79–81, and a curveball at 78–80. He uses the splitter as his main strikeout pitch.[22]