Vance lied more often than he told the truth.
(Click the above link for a fact check of the debate by Politifact)
Walz could have nailed Vance several more times than he did.
But Walz nailed him to a wall with the reproductive rights/bodily autonomy and the January 6th insurrection attempts; he called out Vance’s refusal to respond to a direct question about the 2020 election Trump’s post-election and coup attempts “a damning non-answer” when Vance said, “I’m focused on the future , not the past” when asked if he would accept the results of the 2024 election and/or if he believed Trump won the election and if he’d certify the election if Trump lost again in 2024.
On substance, Walz won, hands down. He was just too “midwestern nice” to really lay Vance out on the carpet when he could have several times. BUT I like that in a guy. You don’t have to annihilate an opponent to beat him. You just have to call the balls and strikes and let the final score tell the tale. (Candidate Barack Obama was exceptional at doing this.)
On not acting like an ape-on-acid like Trump while parroting his worst impulses and policies and outright lies (trying to end Obamacare/ACA), Vance managed to succeed.