In July 2008, he was traded to the Pittsburgh Pirates, as part of the three team trade that sent Jason Bay to the Boston Red Sox and Manny Ramirez to the Dodgers. Morris was considered the key prospect the Pirates received in the trade. He was immediately assigned to the Pirates then-single A affiliate, the Hickory Crawdads of the South Atlantic League. In 2009, Morris was assigned to the Lynchburg Hillcats, the Pirates' single A affiliate from 1995 to 2009. While in Lynchburg, he posted a 4–9 record with a 5.57 ERA in 15 starts after spending 58 days on the disabled list with tendonitis in his right shoulder. During the Hillcats first-round playoff game for the Carolina League title, he was the winning pitcher in Game 5 of the best-of-five series against Wilmington Blue Rocks. The Pirates suspended Morris in August 2009 for "unprofessionalism" after arguing umpire calls. Despite the struggles, the Pirates added Morris to the 40 man roster after the 2009 season to protect him from the 2009 Rule 5 Draft. In 2010, the Pirates and Cincinnati Reds swapped minor league franchises. As a result, the Reds took control of the Hillcats, while the Pirates received Cincinnati's Sarasota Reds. The Pirates then moved Sarasota's operations to nearby Bradenton, where the club was renamed the Bradenton Marauders. On April 8, 2010, Morris was the Opening Day starting pitcher for the Marauders in their inaugural game. In eight starts for Bradenton, Morris posted a 3–0 record and a 0.60 ERA, the lowest among starters in all of minor league baseball. He also limited opposing hitters to a.220 batting average while walking seven and striking out 40 in 44 innings. On May 16, 2010, Morris became the first Marauder to get promoted, when he was called up to the Pirates Double A affiliate, the Altoona Curve. The Pittsburgh Post-Gazette later reported that Pirates general manager Neal Huntington, stated that Morris had a chance to land with Pittsburgh's Triple-A affiliate, the Indianapolis Indians, by August "if he can sustain what he's doing." However, he was benched in Altoona by mid-season. After throwing 103 innings, he had shown signs of fatigue. The Pirates management wanted to limit Morris to around 130 innings. Pirates' GM, Neal Huntington stated that "Rather than limit his innings each start... we felt it was good to take a couple starts off, tweak his delivery and then get him back out there." Huntington also added that he expects Morris to pitch again in 2010. Morris had a largely successful year in 2010. He stayed healthy for the entire season and threw for a career-high 133 innings. In an interview with MLB.com, Morris stated that he talks to other pitchers for valuable tips on throwing, like most other young pitchers do, however he also talks a lot with catchers for their perspective on how they attack hitters. Morris attended the Pirates spring training camp in 2011, however he was reassigned to the Curve. He was ranked #6 on the Baseball America Pirates Top 10 Prospects list going into the 2011 season. However, Morris struggled as a starting pitcher with Altoona and was converted to relief. Morris became a dominating reliever, although he spent the entire 2011 season in Double-A, which, combined with his move to the bullpen, made his 2011 season very disappointing. Morris began the 2012 season in the bullpen of the Triple-A Indianapolis Indians. He was recalled to the Pittsburgh Pirates for the first time on June 24, 2012. However, Morris did not have the opportunity to make his Major League debut, as he was optioned back to Indianapolis on June 25, 2012. He was recalled by the Pirates on September 10, 2012. On September 14, 2012, he made his major league debut, pitching a scoreless inning against the Chicago Cubs. Morris was recalled by the Pirates on May 28, 2013 when José Contreras was placed on the disabled list. On June 20, 2013, Morris got his first career base hit off Cincinnati Reds pitcher Alfredo Simón.
Miami Marlins
On June 1, 2014, Morris was traded to the Miami Marlins in exchange for the 39th overall pick in the Supplemental 2014 MLB Draft.
San Francisco Giants
In January 2017 Morris signed a minor league deal with the San Francisco Giants for the 2017 season. He had his contract purchased on April 30, 2017. Morris pitched to a 6.43 ERA in 21 innings for the Giants. He elected free agency on June 26.
Retirement
On July 29, 2017, Morris agreed to be the pitching coach at Tullahoma High School for the baseball team, the same school that he graduated from in 2005.