Lawrence was not selected in the 2010 Major League Baseball draft, and signed with the Toronto Blue Jays as an undrafted free agent. In lieu of a signing bonus, Lawrence received a plane ticket to Dunedin, Florida. He was assigned to the Short Season-AAuburn Doubledays, where he was named a mid-season All-Star, and earned a promotion to the Class-ALansing Lugnuts before the end of the season. In total, Lawrence went 7–2 in 2010, with a 2.33 ERA and 61 strikeouts in 77 innings. Lawrence pitched the majority of the 2011 season with Lansing, and was called up to the Advanced-ADunedin Blue Jays four separate times for brief stints. On July 1, he held a 5–8 record and 4.40 ERA with Lansing but managed to turn his season around, going 9–1 with a 1.93 ERA from that point onward. In his four starts for Dunedin in 2011, Lawrence went 3–1 with a 2.84 ERA and 14 strikeouts. Lawrence opened the 2012 campaign with the Double-ANew Hampshire Fisher Cats. After struggling in three appearances, he was assigned back to Dunedin, where he finished the season. In 151 total innings, he posted a 9–7 win–loss record, 3.87 ERA, and 96 strikeouts. Lawrence went to Major League spring training with the Blue Jays as a non-roster invitee, and was assigned to the Triple-ABuffalo Bisons on April 8. He was demoted to Dunedin the following day, and remained with Dunedin for most of the 2013 season, making two appearances for both New Hampshire in August. All told, Lawrence finished the year with a 4–7 record, 4.53 ERA, and 63 strikeouts in 103 innings. Lawrence pitched the entire 2014 season with New Hampshire, going 9–9 with a 3.69 ERA and 93 strikeouts in 151 innings pitched. In the offseason, he made eight appearances for the Bravos de Margarita of the Venezuelan Winter League. Lawrence participated in 2015 Major League spring training, and played mostly for New Hampshire that year, making one start for Buffalo in May. In August, he set the all-time wins record with New Hampshire after earning his 20th win as a Fisher Cat. In a career-high 167 innings, he went 12–14 with a 4.56 ERA and 97 strikeouts. Lawrence returned to the Bravos de Margarita in the offseason, pitching an additional 36 innings. 2016 saw Lawrence remain in Triple-A for the first significant amount of time in his career, as he split the year with the Bisons and Fisher Cats. In 28 total starts, he would post an 8–12 record, 4.17 ERA, and 108 strikeouts. On November 7, 2016, Lawrence elected free agency. He re-signed with the Blue Jays organization on November 14. For the third-consecutive offseason, Lawrence played winter ball with the Bravos de Margarita. He took part in Major League spring training and was assigned to Triple-A in late March. On April 4, Lawrence was announced as the Opening Day starter for Buffalo. Due to two separate weather delays and his call-up to the Majors, Lawrence did not make the start on Opening Day.
On May 11, 2017, Lawrence was claimed off waivers by the Seattle Mariners. On June 1, he set a Mariners franchise record for most strikeouts in a single relief appearance when he struck out 9 batters over 5 innings against the Colorado Rockies. Lawrence earned his first major league win on August 1, pitching 2 innings of relief against the Texas Rangers in an 8–7 Mariners win. Between the two teams, for the season he was 2-3 with a 6.34 ERA. Left-handed batters had a higher batting average against him,.388, than against all other MLB pitchers. He elected free agency on November 6, 2017, and signed a minor league contract with the Mariners on December 7. Lawrence's contract was purchased by the Mariners on March 28, 2018, and he was assigned to the Opening Day roster. For the season, he was 1-0 with a 7.33 ERA. He was released on November 29, 2018, in order to pursue a playing career in Japan.
Hiroshima Toyo Carp
On December 4, 2018, Lawrence signed with the Hiroshima Toyo Carp of Nippon Professional Baseball. On December 2, 2019, he become free agent.