Bonilla was signed out of high school by Pittsburgh Pirates scout Syd Thrift. His rise through the Pirates' farm system came to a halt during spring training in 1985 when he broke his right leg in a collision with teammate Bip Roberts. The White Sox then acquired him through the Rule 5 Draft. After making his major league debut with Chicago, Bonilla was regularly hazed by veteran players and Negro League Baseball star Buck O'Neil who put shaving cream in his shoes. Syd Thrift, then the Pirates' General Manager, reacquired the unhappy Bonilla in exchange for pitcher Jose DeLeon.
Bonilla became the Pirates' starting third baseman in 1987 but after committing a whopping 67 errors over his next two seasons at the hot corner, manager Jim Leyland moved him to right field. There he formed a formidable combination alongside stars Barry Bonds and Andy Van Slyke and helped propel the Pittsburgh Pirates to two of their three straight NL East titles from 1990-1992.
In 1992, he was signed as a free agent by the New York Mets to a (then) very lucrative 5 year, $25 million contract. But without his fellow Pirate stars around him, his offensive production dropped. His stay in New York would also be marred by a number of incidents, such as threatening sportswriter Bob Klapisch that he would "show him the Bronx" in response to his book on the 1992 Mets, The Worst Team Money Could Buy: The Collapse Of The New York Mets (ISBN 0-8032-7822-5). On another occasion, he called the press box during a game to complain about an error that he was charged with (later attempting to explain by saying he was calling to check up on the PR director's cold.)
After helping the Orioles to the ACLS in 1996, he was once again granted free agency and signed with the Florida Marlins. Reunited with his old manager, Jim Leyland, he helped the Marlins win the 1997 World Series.
In 1999, the New York Mets reacquired Bonilla from the Los Angeles Dodgers in exchange for Mel Rojas. Again, his level of play did not measure up to expectations and he had numerous clashes with manager Bobby Valentine over lack of playing time. His tenure in New York culminated in an infamous incident during Game Six of the 1999 NLCS where the Mets were eliminated by the Braves in a gut-wrenching eleven inning game while Bonilla reportedly sat in the clubhouse playing cards with teammate Rickey Henderson.
When the New York Mets placed Bonilla on unconditional waivers in 2000, they agreed to pay out the remainder of his contract by deferring the remaining $5.9 million, instead giving him 25 equal payments of $1,193,248.20 each July 1 from 2011 to 2035, for a total of $29,831,205.
In 2001, he was signed by the St. Louis Cardinals, but was released due to an injury and the success of his replacement, Albert Pujols. (It is erroneously believed that Bonilla's injury was the only reason Pujols made the 2001 Cardinals; in reality, Pujols had an excellent spring training and had already earned a spot before the injury.) He played his final game on October 7th, 2001. He also played from 1984 to 1988 with the Mayaguez Indians of the Puerto Rican Winter League.
Bonilla hit one of the only thirteen home runs ever hit into the upper deck of Three Rivers Stadium, and one of the six to the right-field side. Willie Stargell is the all-time leader in upper deck shots at the stadium, hitting four of the remaining five right-field blasts; Mark Whiten hit the other. The left-field upper deck had been reached by Jeff Bagwell twice, and Bob Robertson, Greg Luzinski, Howard Johnson, Glenallen Hill and Devon White (his home run struck the facade) once each.