The Washington Nationals selected Karns in the 12th round of the 2009 Major League Baseball draft. His professional career was delayed as he had shoulder surgery in 2010, and didn't make his minor league debut until 2011. In 2012, he started at Class A Hagerstown, and then was promoted to Class A Advanced Potomac. His combined record was 11–4, and was named the Nationals Minor Pitcher of the Year in 2012. He was added to the 40-man roster on November 20, 2012. When Ross Detwiler suffered an injury, Karns was called up to take his place in the pitching rotation, and made his major league debut on May 28, 2013. He started, and lasted innings, allowing three earned runs, five hits, and two walks, in a game the Nats won, 9–3.
On February 13, 2014, Karns was traded to the Tampa Bay Rays in exchange for José Lobatón, Felipe Rivero and Drew Vettleson. Karns spent the majority of the season in the Rays' AAA system. He finished the season appearing in 2 starts only. in the 2016 season Due to numerous injuries to begin the 2015 season, the Rays gave Karns a rotation spot for opening day. On July 21, 2015 pitching against the Philadelphia Phillies in Philadelphia, Karns hit his first Major League home run as Rays defeated the Phillies, 1–0. It was the first time since 1962 that an American League pitcher had homered in a 1-0 game. Karns appeared in 26 starts for the Rays, averaging nine strikeouts per nine innings despite just logging under 6 innings per start.
Seattle Mariners
On November 5, 2015, the Rays traded Karns, C. J. Riefenhauser, and Boog Powell to the Seattle Mariners for Brad Miller, Danny Farquhar, and Logan Morrison. Karns began the Mariners season in the rotation but was then demoted to the bullpen after struggling. He made seven relief appearances before being shut down for the season in early August with a back strain. Karns finished the season with a 6–2 record, 5.15 ERA, and 101 strikeouts in 94 innings.
Kansas City Royals
On January 6, 2017, Karns was traded to the Kansas City Royals for Jarrod Dyson. His 2017 season with Kansas City was cut short due to injury, undergoing surgery for thoracic outlet syndrome in July. He finished the season 2-2 with a 4.17 ERA in 9 games, 8 starts. He missed the entire 2018 season with right elbow inflammation. He elected free agency after the Royals outrighted him to the minors on October 31, 2018.
Baltimore Orioles
Karns signed a one-year contract with the Baltimore Orioles on February 7, 2019. The deal was worth a reported $800,000 guaranteed, with $200,000 in incentive bonuses for 100 innings pitched. He appeared in 4 games before being placed on the disabled list with a forearm strain. On July 26, Karns was designated for assignment and outrighted on August 2. Karns was released on August 7, 2019.
Personal life
Nathan Karns was married in December 2015 to Jennifer Karns.