He has previously played in MLB for the Oakland Athletics, New York Yankees, Cincinnati Reds, and Minnesota Twins.
This earned him a nod for the AFLAC All-American High School Baseball Classic, and a nomination for National Player of the Year (which Tim Melville ultimately won).
[citation needed] In addition to his success on the mound, he also played quarterback for Smyrna's football team, guiding them to back-to-back 5A State titles in 2006 and 2007.
As a freshman for the Vanderbilt Commodores baseball team, he began as a relief pitcher, earning four saves before moving to a starter's role late in the season.
He also helped Vanderbilt earn their first-ever College World Series berth, making it to the semifinals and losing to national runner-up Florida.
There, he posted a 4.14 ERA before being promoted to the Sacramento River Cats of the Class AAA Pacific Coast League, where he struggled in his only start.
[citation needed] On September 22, Gray pitched and won the AL West Division-clinching game against the Minnesota Twins.
[citation needed] On October 5, Gray started Game 2 of the American League Division Series against Justin Verlander and the Detroit Tigers.
On the final day of the regular season, Sonny clinched the Athletics' third consecutive playoff spot with a complete game win on the road against the Texas Rangers.
[citation needed] Gray continued his success through mid-July, as he held a 10–3 record and a 2.04 ERA at the All-Star Break.
He finished third in the American League Cy Young Award voting, behind winner Dallas Keuchel and David Price.
[15] Gray failed to improve on his successful 2015 season, suffering multiple setbacks that twice landed him on the disabled list.
[citation needed] Gray was going to pitch for Team USA in the 2017 World Baseball Classic, but he failed to meet the requirements for insurance coverage and was unable to.
[17] On July 31, 2017, the Oakland Athletics traded Gray to the New York Yankees in exchange for Dustin Fowler, Jorge Mateo, and James Kaprielian.
[18] The Yankees would advance to the ALCS after overcoming a 2–0 series deficit against the Cleveland Indians in the ALDS, with Gray having been the losing pitcher for Game 1 after giving up three runs in 3.1 innings.
[19][20] Gray struggled throughout his tenure as a starter in 2018, eventually losing his rotation spot to newly acquired teammate Lance Lynn after giving up seven runs in 2+2⁄3 innings to the Baltimore Orioles on August 1.
Going 11–8 with a 2.87 ERA, 1.084 WHIP, and a career best 10.5 strikeouts-per-nine-innings rate, Gray placed 7th in the NL Cy Young Award voting.
On March 13, 2022, the Reds traded Gray to the Minnesota Twins with Francis Peguero in exchange for Chase Petty.