On December 11, 2014, the Red Sox traded Speier, Yoenis Céspedes, and Alex Wilson to the Detroit Tigers for starter Rick Porcello.
Speier played for the High-A West Michigan Whitecaps in 2015[5] where he compiled a 4–2 record and 2.86 ERA in 33 relief appearances.
[6] On December 9, the Braves traded him and Shelby Miller to the Arizona Diamondbacks for Dansby Swanson, Ender Inciarte, and Aaron Blair.
[7] Speier spent 2016 with the Kane County Cougars, AZL Diamondbacks, Visalia Rawhide, and Mobile BayBears, pitching to a combined 4–2 record, 2.62 ERA, and 1.20 WHIP in 39 appearances out of the bullpen.
[4] On June 6, 2018, the Diamondbacks traded Speier and Elvis Luciano to the Kansas City Royals for Jon Jay.
He began 2019 returning to Double-A for the third season in a row before being promoted to the Triple-A Omaha Storm Chasers at the end of May.
[9][10] He made his major league debut on September 5 versus the Detroit Tigers, pitching a scoreless seventh inning with two strikeouts and one walk.
[11] With the 2020 Kansas City Royals, Speier appeared in 8 games, compiling a 0–1 record with 7.94 ERA and 6 strikeouts in 5+2⁄3 innings pitched.
Speier split time between the Royals and the Storm Chasers again in 2023, also hitting the injured list for two weeks at the end of May.