Houston Astros MLB.com ranked Eshelman as the 99th best available
prospect in the
2015 Major League Baseball draft, while
Baseball America rated him 126th. Eshelman signed with the Astros, who assigned him to the
Gulf Coast Astros of the
Rookie-level Gulf Coast League to limit his workload for the remainder of the year, following the 130 innings Eshelman pitched for Cal State Fullerton in 2015. In August, the Astros promoted Eshelman to the
Quad Cities River Bandits of the
Single-A Midwest League. He pitched in only four games as a professional in 2015. Eshelman went a combined 0–1 with a 4.35 ERA between both clubs.
Philadelphia Phillies The Astros traded Eshelman,
Mark Appel,
Vince Velasquez,
Brett Oberholtzer, and Harold Arauz to the
Philadelphia Phillies in exchange for
Ken Giles and
Jonathan Araúz on December 12, 2015. He spent the 2016 season with the
Clearwater Threshers of the
High-A Florida State League and the
Reading Fightin Phils of the
Double-A Eastern League, where he posted a 9–7 record with a 4.25 ERA, along with a 0.97 WHIP, between both clubs. Eshelman began the 2017 season with Reading, and earned a promotion to the
Lehigh Valley IronPigs of the
Triple-A International League in May. He posted a combined 13–3 record with a 2.40 ERA between both teams. The 2018 season found him once again on the IronPigs’ roster. The season was mostly a disappointment, with Eshelman going 2–13, with a 5.84 ERA in 27 games (26 of them as a starter). Eshelman began the 2019 season in with Reading but was promoted back to Lehigh Valley after six starts with the team, going 0–3 with a 6.28 ERA.
Baltimore Orioles The Phillies traded Eshelman to the
Baltimore Orioles in exchange for international bonus allocations on June 10, 2019. Eshelman had posted a 1–1 record with a 2.77 ERA, 23 strikeouts, and a complete game for Lehigh Valley at the time of the trade. After making three starts for the
Norfolk Tides of the International League, the Orioles promoted Eshelman to the major leagues to start against the
Tampa Bay Rays on July 1. In his debut, he allowed two runs over five innings pitched. On September 2, Eshelman was
designated for assignment. On July 31, 2020, Eshelman was selected to Baltimore's active roster. In 2020 for the Orioles, Eshelman pitched in innings over 12 games, notching a 3–1 record, 3.89 ERA and 16 strikeouts. On November 25, Eshelman was designated for assignment. He elected free agency on December 3. On January 16, 2021, Eshelman re-signed with the Orioles organization on a minor league contract. The Orioles added Eshelman to their active roster on June 18, and designated him for assignment on August 1. On August 3, Eshelman cleared waivers and was assigned outright to Triple-A Norfolk. On September 19, the Orioles once more selected Eshelman's contract. Eshelman made 9 appearances for the Orioles in 2021, going 0–3 with a 7.16 ERA and 11 strikeouts. On October 25, Eshelman elected free agency.
San Diego Padres On March 21, 2022, Eshelman signed a minor league contract with the
San Diego Padres. He made 27 appearances split between the Double-A
San Antonio Missions and Triple-A
El Paso Chihuahuas, struggling to a 4-7 record and 5.76 ERA with 68 strikeouts across 114 innings pitched. Eshelman was released by the Padres organization on October 16. ==Post-playing career==