In the 1998 Major League Baseball draft, the San Diego Padres selected Lawrence in the 17th round. After spending the rest of that year at the Rookie League and Class A Short Season levels of the Padres' organization, he played a full season in with the Class A-AdvancedRancho Cucamonga Quakes, finishing with a 12-8 record and a 3.39 ERA. During the season, Lawrence split time between the Double-AMobile BayBears and the Triple-ALas Vegas Stars. At the end of the season, Lawrence made his major league debut for the Padres. He ended up going 5-5 with a 3.45 ERA in 27 games. The 2001 season was the only one in which the Padres used him extensively in a relief role. By, he had established himself in the Padres' starting rotation, and he made at least 31 starts with the Padres in each of the next four seasons. For three consecutive years, he logged more than 200 innings pitched, and he won at least ten games in each of those seasons. On June 12, 2002, Lawrence struck out three batters on nine pitches in the third inning of a 2-0 win over the Baltimore Orioles. Lawrence became the 24th National League pitcher and the 33rd pitcher in Major League history to accomplish the nine-strike/three-strikeout half-inning. However, in, his record was just 7-15, and his ERA 4.83 – his highest-ever ERA in the majors. He threw the slowest fastball of all NL starters in 2005, averaging 83.3 miles per hour.
After the 2005 season, the Padres traded Lawrence to the Washington Nationals for third baseman Vinny Castilla. Following the trade to the Nationals, Padres General Manager Kevin Towers was quoted as saying "Brian Lawrence was an effective low cost innings-eater". The righty would never have an opportunity to pitch for the Nationals. On the second day of spring training for the season, team doctors discovered a torn labrum and a torn rotator cuff in his right shoulder, which put him on the disabled list for all of 2006. After the 2006 season, the Nationals declined their option on Lawrence.
On January 21, 2007, Lawrence was signed by the Colorado Rockies, but was released early in the season.
New York Mets
On May 6, 2007, Lawrence signed a minor league contract with the New York Mets. The Mets assigned him to their Triple-A affiliate, the New Orleans Zephyrs. On August 2, 2007, Lawrence was called up to the major leagues, and started his first game with the Mets against the Milwaukee Brewers. His victory in Milwaukee was his first major league win in almost 2 years. He was designated for assignment on September 18, 2007. Lawrence made six starts for the Mets and posted a 6.83 ERA. Lawrence opted for free agency after the season.
On January 19, 2008, the Kansas City Royals signed Lawrence to a minor league contract with an invitation to spring training, he was released from the team on March 27, 2008.
On June 8, the Atlanta Braves bought Lawrence's contract from Camden and assigned him to Triple-A Richmond. He became a free agent at the end of the season.
He joined the independent Orange County Flyers of the Golden Baseball League under first-year manager Phil Nevin in. In his Flyers debut, he threw a complete game one-hitter.
Return to the Padres
The San Diego Padres purchased his contract from the Flyers on June 15, 2009 and sent him to Triple-A. On August 1, 2009 the San Diego Padres released Lawrence.
On August 18, 2009, Lawrence signed a minor league contract with the Florida Marlins. His contract expired at the end of the season. Lawrence re-signed a minor league contract with the Marlins on April 1, 2010.