He was named to the All-Big Ten Conference First Team in his freshman, sophomore, and junior seasons, during which he compiled a 16–11 win–loss record, an earned run average (ERA) of 2.88, and 251 strikeouts to 90 walks over 228+1⁄3 innings pitched.
Immediately after agreeing to terms on June 16, 2004, Happ was assigned to the Batavia Muckdogs of the Short-season A-level New York–Penn League, where he posted a 2.02 ERA in eleven starts, averaging more than one strikeout per inning pitched.
He was promoted to Double-A for a single game at the end of the season, in which he gave up only one earned run in six innings and struck out eight.
In 2006, Happ began the season for the Clearwater Threshers of the High-A Florida State League, but earned a promotion to the Double-A Reading Phillies at midseason.
He was rewarded, during the following offseason, with his first appearance in Baseball America's "Top Ten Prospects" list for the Phillies organization, in which he was ranked eighth.
On June 30, 2007, while suffering from a spate of injuries to their starting rotation, the Phillies purchased Happ's contract from the Lynx.
Despite striking out 36 batters over five starts in the months of July and August,[7] Happ's ERA ballooned to 5.02 by the end of the season.
He fared better in his second major league start, pitching 4+2⁄3 innings, giving up three hits, two earned runs, four walks while striking out three.
Happ was also awarded a no-decision in his third career start (second of the season), in which he pitched 6+1⁄3 innings and gave up two runs, but the Phillies went on to defeat the Cardinals by a 4–2 score.
[9] However, Happ never took Eaton's spot in the rotation, as the Phillies had already acquired starter Joe Blanton from the Oakland Athletics on July 17.
On September 16, Phillies manager Charlie Manuel announced that Happ would start on the following night against the Atlanta Braves, replacing the struggling Kyle Kendrick.
On August 5, Happ pitched his second career shutout, giving up four hits and striking out ten in a home game against the Colorado Rockies.
[15] The Philadelphia chapter of the Baseball Writers' Association of America presented him the "Steve Carlton Most Valuable Pitcher" award.
[6] On July 29, 2010, Happ was traded to the Houston Astros along with minor leaguers Anthony Gose and Jonathan Villar in exchange for Roy Oswalt.
[6] The following season, Happ would post his worst career numbers, with a 6–15 record, a 5.35 ERA, 134 strikeouts, and a 1.54 WHIP in a career-high 1561⁄3 innings pitched.
[18] Happ worked as a reliever for the Blue Jays until the demotion of Brett Cecil allowed him to be promoted to the vacant starting role.
[20] On January 18, 2013, it was announced that the Blue Jays had avoided arbitration with Happ, signing him to a one-year contract worth $3.7 million.
He collapsed immediately, but remained conscious and after lying on the mound for 11 minutes, he was taken off the field on a stretcher and taken to Bayfront Medical Center.
[31] In his first start at Tropicana Field since he was struck by a line drive, Happ recorded the win, pitching 51⁄3 innings and giving up 2 earned runs on 5 hits with 5 strikeouts.
Taking the win, 4–2, Happ leveled his record for the season at 11–11, and finished with a 4.22 ERA, 133 strikeouts, and a 1.34 WHIP in 30 appearances (26 starts) totaling 158 innings pitched.
[40] He became the Blue Jays' first pitcher to earn eleven wins prior to the All-Star break since Roy Halladay in 2008, when he defeated the Cleveland Indians 17–1 on July 3, 2016.
[41] In his next start, Happ recorded his 12th victory of the 2016 season, 6–0 over the Detroit Tigers, which tied his career-high and matched the twelve wins Halladay posted before the All-Star break in 2006.
[46] In doing so, he joined Halladay, Roger Clemens, Pat Hentgen, David Wells, and Jack Morris as the only pitchers to win 20 games or more for the Blue Jays in a single season.
[6] Happ started game two of the 2016 American League Division Series and earned the win, pitching five innings and allowing a single run on nine hits with five strikeouts.
[50] On March 20, 2018, Happ was announced by Blue Jays manager John Gibbons as the Opening Day starter, a first for his career.
[54] On July 26, 2018, the Blue Jays traded Happ to the New York Yankees in exchange for Brandon Drury and Billy McKinney.
Despite a shaky 2019, he finished strong with ERA under 2.00 for the month of September, On October 4, 2019, Happ made his first appearance as a reliever for the Yankees, pitching in the eighth inning against the Minnesota Twins in American League Divisional Series.
On February 22, 2020, Happ returned as a starter for the Yankees Spring Training Opener against Toronto Blue Jays, and he had his uniform number switched to no.
[62] On July 30, 2021, Happ was traded to the St. Louis Cardinals along with cash considerations in exchange for John Gant and Evan Sisk.