Franco grew up in the Bensonhurst section of Brooklyn. His father, the late Jim Franco, was a New York City Department of Sanitation worker who encouraged his son's baseball aspirations; Franco honored his father by wearing an orange Sanitation Department work-shirt under his jersey. John graduated from Lafayette High School in Brooklyn and St. John's University in Queens, where he pitched two no-hitters in his freshman year.
Franco was originally selected by the Los Angeles Dodgers on June 8, 1981 in the 5th round of the amateur draft. Before reaching the major leagues; however, he was traded to the Cincinnati Reds on May 9, 1983 with Brett Wise for Rafael Landestoy. Landestoy batted under .200 before retiring the following year while Franco was a star reliever for much of the next two decades. Franco debuted with the Reds on April 24, 1984. Franco was a traditional relief pitcher with a "90-mph fastball and a change-up that breaks away from a righthanded batter like a screwball."
Throughout his six seasons with the Reds, Franco was a successful closer, winning the National League Rolaids Relief Man of the Year Award in 1988. He helped the Reds finish second four seasons in a row (1985–1988).
On December 6, 1989, at the age of 29, he was traded with Don Brown to the Mets for Randy Myers and Kip Gross. He remained with the Mets organization until the end of the 2004 season. During his time with the Mets, he won the Rolaids Relief Man of the Year Award in 1990, became team captain, and remained the closer until 1999, when he moved to a setup role for new closer Armando Benítez. He led the league in saves for the 1988, 1990, and 1994 seasons. He reached the postseason for the first time in 1999 and the World Series in 2000.
On May 11, 1996, in a game against the Chicago Cubs, the Mets held "John Franco Day" to celebrate his 300th career save. In the fifth inning, a brawl that cleared both benches and bullpens resulted in Franco being ejected from the game, along with eight other players. An unusual occurrence considering it was his "day" and he was in the bullpen.
Injuries caused Franco to miss the 2002 baseball season, but he made a successful recovery from surgery and returned in June 2003. He signed a one-year contract for the 2004 season. He finished with a 2-7 record with 36 strikeouts and a 5.28 ERA in 46 innings.
In January 2005, he was signed to a one-year deal with the Astros, at the age of 44, making him at that time the oldest active pitcher in Major League Baseball. On July 1, 2005, Franco was designated for assignment, and he was subsequently released, which proved to be the end of his baseball career.
He also most recently appeared on the television show Pros vs Joes. During a recent interview, he revealed that he never threw a screw ball, but instead only threw a circle changeup.