On December 11, 2015, Harper was sent to the Seattle Mariners to complete an earlier trade for José Ramírez.[3] Harper spent the 2016 season with the Jackson Generals, going 4-5 with a 3.04 ERA in 68 innings.[2] He split the 2017 season between the Arkansas Travelers and the Tacoma Rainiers, combining to go 4-2 with a 3.35 ERA in 53.2 innings.[2] Harper was called up to the majors for the first time on May 28, 2017.[4] He was outrighted on June 17, 2017 without making an appearance. He elected free agency on November 6, 2017.[2]
In 2019, Harper received a non-roster invitation to major-league spring training.[6] Harper made the Twins' Opening Day roster out of spring training.[7] He made his major league debut on March 31, 2019, versus the Cleveland Indians, recording one scoreless inning of relief.[8] He got his first career save on May 28, 2019, against the Milwaukee Brewers.
On August 24, 2019, the Twins assigned Harper to the Triple–A Rochester Red Wings. He finished 4-1 with an ERA of 3.81 in 61 games for Minnesota. Harper was designated for assignment by the Twins on January 24, 2020.
Washington Nationals
Harper was traded to the Washington Nationals on January 29, 2020, for minor league pitcher Hunter McMahon.[9] In 2020, Harper was 1–0 with a 7.61 ERA over 23+2⁄3 innings.
On November 30, 2021, Harper was non-tendered by the Nationals, making him a free agent.[10]