He was promoted to the Colorado Rockies in September 2009 and made his major league debut on September 12, 2009, giving up two runs and three hits in four innings in the team's 3–2 loss at San Diego. He returned to the Rockies in 2010, and pitched in 28 games, eight starts, compiling a 2–3 record, 6.13 ERA, and 1.67 WHIP. Rogers compiled a 3–1 record as a starter in April 2011 despite a 6.33 ERA. Rogers replaced Ubaldo Jiménez, who was traded to the Cleveland Indians, in the pitching rotation after his trade to the Indians on July 30. He allowed one run on one hit and one walk over those five innings of relief, lowering his season-high ERA from 8.49 to 7.31. On June 12, 2012, the Rockies traded Rogers to the Indians for cash considerations after previously being designated for assignment by the Rockies. He had a 0–2 record and 8.06 ERA with the Rockies in 2012.
Cleveland Indians
Rogers replaced Matt LaPorta on the Indians' active roster on June 13, 2012. "We're hoping that getting him out of the Colorado ballpark and new surroundings, maybe we can cash in on a very good arm", said Indians managerManny Acta. Rogers went 3–1 with a 3.06 ERA with 54 strikeouts and 53 innings in 44 games for the Indians.
Toronto Blue Jays
On November 3, 2012, the Toronto Blue Jays announced that they had traded Mike Avilés and Yan Gomes to the Cleveland Indians for Rogers. Rogers made his first start as a Blue Jay against the Atlanta Braves on May 29, 2013. He pitched 3 innings and gave up 3 hits, with 2 walks and 4 strikeouts. Rogers would have received the win, but did not pitch the minimum 5 innings required to be the pitcher of record. On June 13, in his third start of the season, Rogers pitched 7 innings against Yu Darvish and the Texas Rangers, earning the win in a 3–1 game. On June 18, starting against the Colorado Rockies for the first time in his career, Rogers took a no-hitter into the sixth inning and left with an 8–2 lead after pitching 6 innings. The Blue Jays would win the game 8–3 and extend their winning streak to seven games. The start, Rogers' fourth of the season, put his starters ERA at 1.71. Both manager John Gibbons and catcher J. P. Arencibia attributed Rogers' success to increased confidence and the use of his sinker. Rogers took the loss in a game on June 24 against the Tampa Bay Rays which ended the Blue Jays' 11-game winning streak. In the loss, Rogers gave up three consecutive home runs. In January 2014, Rogers filed for salary arbitration with Toronto, but came to terms on a 1-year, $1.85 million contract on January 17. On May 23, Rogers was designated for assignment after opening the season with a 6.97 ERA in 16 appearances. He cleared waivers, and was assigned outright to the Triple-A Buffalo Bisons on May 24. His contract was selected on July 22, but he was again designated for assignment on July 27 without appearing for the team.
On July 31, 2014, the New York Yankees claimed Rogers off waivers from the Blue Jays. He pitched three scoreless innings in his Yankees debut on August 3. On August 8, Rogers pitched five innings, allowed one run, and recorded the win in his first start as a Yankee. After the 2014 season, the Yankees signed Rogers to a $1.48 million contract for the 2015 season. After working to a 6.27 ERA with 41 hits allowed in 33 innings, the Yankees outrighted him to the Scranton Wilkes-Barre Yankees of the Class AAAInternational League on June 13, 2015, removing him from the team's 40-man roster. He was later called back up on June 28, and outrighted again on July 1. He was released on July 31.
Hanwha Eagles
After his release from the Yankees, Rogers signed with the Hanwha Eagles of the KBO League. He made his Eagles debut as a starting pitcher against the LG Twins on August 6, 2015. He earned a win by throwing a complete game, where he struck out seven hitters and allowed just one run while surrendering three hits as the Eagles recorded a 4-1 victory. In his second start for the Eagles on August 11, 2015 against the KT Wiz, he recorded his second KBO victory where he pitched a complete game shutout in a 4-0 victory as he again allowed just three hits and he again struck out seven batters. Rogers thus became the first pitcher to throw two consecutive complete games in his first two KBO starts. He was released when the team signed Eric Surkamp on July 7, 2016.
On August 1, 2017, Rogers signed a minor league contract with the Washington Nationals.
Nexen Heroes
On October 27, 2017, the Nexen Heroes of the KBO League announced that they signed Rogers to a one-year contract for the 2018 season, worth $1.5 million. After breaking his finger, Rogers was released on June 20, 2018, in order to open up a spot for another foreign player on the roster.