Linebacker Griffin Grady led the defense with nine tackles and cornerback Ceasar Williams added an interception.
Three different Badgers, Garret Rand, Isaiahh Loudermilk and David Pfaff, recorded sacks.
Offensively, quarterback Jack Coan went 10 of 17 for 121 yards and a touchdown for the Cardinal. Kare Lyles went 2 of 6 for 16 yards. The Cardinals lone touchdown came in the closing seconds as Coan found tight end Zander Neuville in the end zone on a 8-yard pass. Kyle Penniston led the Badgers with three a catches for 33 yards.
Kicker Rafael Gaglianone returned to action after missing a large portion of last season with injury. He converted 2 of 3 field goal attempts, connecting twice from 42 yards out.
Running back Bradrick Shaw had a 20-yard touchdown run and finished with 34 yards on four carries. Troy Laufenberg (7 carries for 31 yards) and Garrett Groshek (12 for 29) added to the Cardinal totals.
Most of the starters didn’t play in the spring game. The Badgers will open their season on Friday, Sept. 1, against Utah State at Camp Randall Stadium.