The Blue Jays announced the deal that sends minor league pitcher Osman Gutierrez to the Marlins for Koehler.
Koehler has only started 12 games for the Marlins this season. The 31-year-old has struggled with a 7.92 ERA in 55.2 innings and hasn't pitched in the big leagues in nearly a month.
The Marlins demoted Koehler to Triple-A multiple times already in 2017, most recently after his start against the Cincinnati Reds on July 23.
Prior to this season, Koehler had been a reliable pitcher at the back of Miami's rotation. He made a career-high 33 starts in 2016 and threw at least 176.2 innings in each of the last three seasons.
The Blue Jays can use more rotation help down the stretch with Aaron Sanchez still on the disabled list with blister problems and Nick Tepesch giving up six runs and four home runs in two starts since being acquired from the Minnesota Twins.
Going to the Marlins, Gutierrez is a 22-year-old in Low-A. He signed with the Blue Jays as an international free agent in 2011 and has a 7.85 ERA in 18 starts.