A native Texan, Darwin went undrafted and was signed by the Rangers. Throwing in the 94-mph range, he fanned the first four Mariners he faced in his major-league debut on September 24, 1978. In 1980 he went 13-4 (2.62) with eight saves but broke a knuckle on his right hand when aiding Mickey Rivers in a scuffle with fans outside Comiskey Park on June 4 and was disabled for three weeks. Moved into and out of the rotation, he was a .500 pitcher before his 1985 trade to Milwaukee. That year he went 8-18, despite a staff-best 3.80 ERA. He lost 10 consecutive games to set a Brewers record; it took a one-hitter against the Twins to halt the streak. As his fastball began to wane, he became more of a finesse pitcher who relied on his forkball, slider and outstanding control.
Darwin was traded to Houston for their 1986 pennant drive and went 5-2. During his four remaining years with the Astros, he continued his schizophrenic career as both reliever and starter. He combined for 50 starts in 1987 and 1988, then was used exclusively in relief during 1989, when he posted an 11-4 record with seven saves in 68 appearances. The following season he again notched an 11-4 mark, this time leading the league with a 2.21 ERA.
After his tenure in Houston, Darwin signed a free-agent contract with the Red Sox in December 1990. He started a career-high 34 games and tallied a career-best 15 victories for Boston in 1993. After struggling in 1994, Darwin fared miserably in 1995, winning just three times against 10 defeats in 20 games for Toronto and Texas. He pitched well enough for the last-place Pirates in 1996 to once again catch the attention of the Astros, who acquired him in July 1996 for right-hander Rich Loiselle.
Darwin signed with the White Sox in February 1997 and was pitching effectively when the club dealt him to San Francisco that August as part of the infamous “White Flag” trade. With Chicago still within striking distance of the Indians in the AL Central, the front office sent Darwin, starter Wilson Alvarez and reliever Roberto Hernandez to the Giants for a package of young prospects that included infielder Mike Caruso and relievers Bobby Howry and Keith Foulke. After the season Darwin re-signed with San Francisco, where he made 25 starts and eight relief appearances in his final major-league campaign.