He played collegiate baseball at Loyola Marymount University after being undrafted in the 2014 Major League Baseball draft.[5] He pitched 57 innings in 2015, his first year, going 6-3 with a 3.95 ERA. Following that year, he relocated to Cypress College, where he played in 17 games (16 starts) and finished 11-3 with a 3.72 ERA in 2016.[6] He transferred again after the season, this time to the University of Arizona. He threw to a 2–3 record and a 5.55 ERA over 35+2⁄3 innings, mostly in relief, in his junior year of 2017.
In 2018, as a senior, he pitched 32+1⁄3 innings, went 1–3 with a 4.73 ERA, struck out 38, and recorded six saves.[8] The New York Mets selected him in the eighth round of the 2018 Major League Baseball draft, following the season.
After signing a contract with the Mets, Megill debuted with the Brooklyn Cyclones, finishing 1-2 with a 3.21 ERA in 28 relief innings.[10] He started the 2019 season with the Columbia Fireflies and was promoted to the Binghamton Rumble Ponies and the St. Lucie Mets during the season. Megill was 6–7 with a 3.52 ERA over 22 games (11 starts) between the three clubs, striking out 92 batters in 71+1⁄3 innings.[11] Due to the COVID-19 pandemic-related postponement of the minor league season in 2020, Megill did not participate in any games.
In 2021, Megill went back to Binghamton, who were now a part of the Double-A North-east League.[13] On June 1, he was promoted to the Triple-A East League’s Syracuse Mets after pitching to a 3.12 ERA over 26 innings with Binghamton.