On June 13, 1989, Bono signed a contract with the San Francisco 49ers where he remained for five seasons (1989-1993), his longest stay with one team in his career. Bono spent the 1989 and 1990 seasons as the 49ers' third-string quarterback behind Joe Montana and Steve Young. In 1991, with Montana lost for the season, and Steve Young injured mid-season, Bono started six games. He went 5-1 as a starter and finished the season fourth in passer rating behind Young, Jim Kelly, and Mark Rypien. Bono returned to his backup role behind Young in 1992 and 1993.
Prior to the 1994 season, the 49ers traded Bono to the Kansas City Chiefs, where once again he served as a backup to Montana. After Montana retired, Bono became the starting quarterback in 1995. On October 1, 1995, in a game against the Arizona Cardinals, Bono ran 76 yards for a touchdown, the longest scoring run by a quarterback in NFL history up to that time. In the same season, he guided the Chiefs to a 13-3 record and a division title. At season's end, he was selected for the AFCPro Bowl team. Bono remained the Chiefs starter throughout the 1996 season.