On August 9, 2011, the Blue Jays promoted Álvarez to the major leagues. He took the rotation spot of Carlos Villanueva, and made his major league debut on August 10 against the Oakland Athletics pitching 5 innings and giving up 3 earned runs on 8 hits, with 4 strikeouts and 1 walk. On August 31, Álvarez recorded his first major league win in a 13–0 victory over the Baltimore Orioles. He pitched eight full innings, giving up three hits, no walks and recording five strikeouts. At 21 years and 135 days, Álvarez becomes the youngest Blue Jays' pitcher to record a win since Kelvim Escobar in 1997, and the youngest starting pitcher to record the win for the Jays since Phil Huffman in 1979. He made 10 starts for the Blue Jays, going 1–3 in innings. He issued eight walks while striking out 40. On May 4, 2012, Álvarez threw his first career complete game and shutout, defeating the Los Angeles Angels of Anaheim 4–0. With teammate Brandon Morrow throwing a shutout the previous night, they became the first Blue Jays to throw back-to-back shutouts since Jack Morris and Al Leiter on June 16 and 17, 1993. Álvarez finished the 2012 season with a 9–14 record and a 4.85 ERA in 31 starts. He struck out 79 batters in innings pitched, which resulted in the lowest strikeout rates in the Majors in 2012.
Miami Marlins
On November 19, 2012, the Blue Jays traded Álvarez to the Miami Marlins along with Adeiny Hechavarria, Jeff Mathis, Yunel Escobar, Jake Marisnick, Anthony DeSclafani, and Justin Nicolino in exchange for Mark Buehrle, Josh Johnson, José Reyes, John Buck, and Emilio Bonifacio. Alvarez spent most of the first half of the 2013 regular season on the disabled list with right shoulder inflammation. He was activated from the 60-day disabled list on July 4, and made his first start as a Marlin that night against the Atlanta Braves. Álvarez received a no-decision in his Marlins debut, pitching five innings and giving up three earned runs in a 4–3 win. Álvarez earned his first win as a Marlin on July 26, against the Pittsburgh Pirates. On September 29, 2013, the final game of the Marlins 2013 season, Álvarez threw the 282nd no-hitter in MLB history, in a game against the Detroit Tigers. He allowed three base runners on an error, a walk, and a hit batter as the Marlins walked off in the bottom of the ninth inning on a wild pitch, 1–0. He became the first pitcher to throw a no-hitter in the final game of the regular season since Mike Witt in 1984, when he did so for the California Angels. Álvarez finished the 2013 season with a 5–6 record in 17 starts. Through 17 starts, Álvarez pitched 102 innings while allowing just two home runs. The previous season he had allowed 29 home runs. Álvarez opened the 2014 season with two complete game shutouts in his first seven starts. He was named an All-Star. After earning an 8–5 record with a 2.48 ERA and a league-leading three shutouts, Álvarez went on the disabled list on August 1 with shoulder inflammation. before being activated on August 16. He finished the 2014 season with a 12–7 record, the most wins for a Marlins pitcher, and a 2.65 ERA with 111 strikeouts. The Marlins named Álvarez their Opening Day starting pitcher in 2015. In April 2015, Álvarez went on the disabled list when an MRI revealed inflammation in his shoulder and elbow. After going 0–4 with an ERA over 6.00, he was declared out for the season after undergoing shoulder surgery on July 28. On December 2, the Marlins opted not to tender Álvarez a contract, making him a free agent.
Oakland Athletics
On December 28, 2015, Álvarez signed a one-year, $4.25 million contract with the Oakland Athletics, with an additional $1.6 million available in incentives. While rehabilitating in the minor leagues, he left a game in July due to shoulder discomfort. After only pitching in 33 innings in the minors, Álvarez underwent shoulder surgery in September. The Athletics outrighted Álvarez to the Nashville Sounds of the Class AAAPacific Coast League on October 7, 2016, and he then elected for free agency.