Johnson had a 6-yard touchdown run on the first possession of the second half for a 23-17 lead. After Miami's missed a field goal, Willoughby outjumped a defender in the end zone for a 9-yard touchdown catch for a 29-17 advantage.
Ryan Smith's 2-yard touchdown catch pulled Miami (Ohio) to 29-24 with 2:21 remaining. Buffalo recovered the onside kick and went three-and-out, but Miami's drive stalled at its 30.
Licata was 22 of 29 passing for 289 yards for Buffalo (4-4, 2-2 Mid-American). Willoughby had two catches for 87 yards, and Johnson had 123 yards rushing.
Billy Bahl was 13 of 36 for 224 yards and two touchdowns for Miami (Ohio) (1-8, 0-5).
Brison Burris intercepted a first-quarter pass by Licata and returned it 76 yards for Miami's only lead at 7-3.