As a senior at McKinney High School in 2010, he won 11 games with a 2.15 ERA and 90 strikeouts. He was a highly rated quarterback in high school, passing for 2,565 yards and 31 touchdowns as a senior to earn a Texas All-State Class 4A honorable mention selection and First-Team All-District 9-4A. The previous year, Lee passed for 2,935 yards and 33 touchdowns and was named District 9-4A Offensive Player of the Year as a junior.
Lee had committed to playing baseball and football at Louisiana State University and enrolled in summer school. He was considered a tough signing due to his football commitment and reportedly dropped in the draft as a result. However, he did sign with the Dodgers, for $5.25 million, a franchise-record signing bonus. After he signed, Baseball America listed Lee as the Dodgers second-best prospect. Lee made his debut in the Dodgers organization for the Great Lakes Loons in the class A Midwest League in 2011. On April 8, he faced the Lake County Captains, throwing four innings with five strikeouts and three walks. He made 24 total starts for the Loons, finishing with a 9–6 record and 3.47 ERA. Lee's 2011 performance led Baseball America to list him as the best prospect in the Dodgers farm system. He was promoted to the High-A Rancho Cucamonga Quakes to start 2012. He was 2–3 with a 4.55 ERA for the Quakes in 12 starts and was promoted to the Chattanooga Lookouts on June 25, 2012. Lee's debut at the AA level came against the Mississippi Braves on the next day. He pitched six innings, yielding only one run, but earned a no decision. His start with the Lookouts was slow, but Lee improved as the season went on thanks to mechanical adjustments in his pitching delivery. He finished 4–3 with a 4.25 ERA for the Lookouts. Following the season, Lee fell to fifth on Baseball America's list of Dodgers prospects. In 2013, Lee was selected to the mid-season Southern League All-Star Game and finished the season 10–10 with a 3.22 ERA and 131 strikeouts in 28 games. Lee was named the Dodgers minor league pitcher of the year for 2013 and ranked fourth on the Dodgers prospect list compiled by Baseball America. Lee was invited to spring training in 2014, but started the season with the Albuquerque Isotopes. Lee's AAA debut came against the Tacoma Rainiers on April 6, 2015. He made 27 starts for the Isotopes and had a record of 7–13 with a 5.44 ERA. On November 20, 2014, he was added to the Dodgers 40 man roster in order to protect him from the Rule 5 Draft. Lee was assigned to the Dodgers new AAA team, the Oklahoma City Dodgers, to start 2015. He got off to a strong start in 2015 in AAA and put himself back on the map for the Dodgers prospects. However, he was shut down at the beginning of June as a result of experiencing tingling in his fingers. The problem was diagnosed as irritation due to poor circulation and he was put back on a throwing program. Prior to his major league debut, Lee had compiled a record of 7–3 and an ERA of 2.36 with Oklahoma City. Lee was called up to the majors for the first time on July 18, 2015, to serve as the emergency 26th man for the second game of a doubleheader against the Washington Nationals, though he did not appear in the game. The Dodgers promoted him again on July 25 to make his debut as the starting pitcher against the New York Mets. He struggled in his debut, allowing four runs to score in the first inning and seven total in the 4 innings he pitched. He was the first Dodgers starting pitcher to allow seven runs in his debut since Johnny Babich in 1934 and the first to allow four runs or more in the first inning of his debut since Frank Wurm in 1944. Lee was optioned back to AAA soon afterwards. In 19 starts for Oklahoma City, he was 11–6 with a 2.70 ERA. He was named the organization's minor league pitcher of the year for a second time. in The Dodgers invited Lee to spring training again in 2016. He contended for the fifth starter spot on the major league club during spring training but was beat out by Ross Stripling and optioned back to AAA. In 13 starts, he was 7–5 with a 4.89 ERA for Oklahoma City. He also spent three days on the major league roster in April but never appeared in a game.
On June 19, 2016, Lee was traded to the Seattle Mariners in exchange for Chris Taylor. In 14 starts for the AAA Tacoma Rainiers he was 0–9 with a 7.74 ERA, while Taylor blossomed into a prolific hitter for the Dodgers. Mariners general managerJerry Dipoto, a prolific trader, has referred to this as one he wishes he could take back and that he "whiffed" on it.
San Diego Padres
On December 13, 2016, Lee was claimed off waivers by the San Diego Padres. He recorded his first major league victory on April 12 against the Colorado Rockies. He was designated for assignment on June 19, and was released from the Padres organization on August 14, 2017.
On March 16, 2018, Lee signed a minor-league contract with the Tampa Bay Rays organization. Lee led the Southern League with a 2.22 ERA with 64 innings pitched and was named to the Mid season All-Star team. He elected free agency on November 2, 2018.
New York Mets
On December 18, 2018, Lee signed a minor league deal with the New York Mets.On June 13, 2019, he was placed on the injured list. Prior to this, he struggled, sporting a 6.75 ERA in 11 starts in 13 appearances, including a 7.19 ERA in last 10 appearances before hitting the IL. He became a free agent following the 2019 season.
Oakland Athletics
Lee signed a minor league contract, with an invite to major league spring training, with the Oakland Athletics on November 25, 2019.