While the two have battled on numerous occasions throughout the course of the Dragon Ball series, Vegeta only managed to technically defeat Goku one time–a victory that was completely flipped by Dragon Ball Super.
In Dragon Ball Z, when Vegeta was corrupted by the magic of Babidi and became Majin Vegeta, his inner rage and frustrations were turned against him as they became his metaphorical chains linking him to Babidi’s control. As Majin Vegeta, the corrupted Saiyan committed a number of atrocities including obliterating an entire corner of the World Martial Arts Tournament stadium. In response to Vegeta’s villainy, Goku launched an attack against him resulting in the two of them facing off in a bout of epically iconic Super Saiyan violence. Their fight was fairly evenly matched, with both delivering devastating blows against the other. In the end, however, Majin Vegeta claimed victory after Goku let his guard down, allowing the corrupt Saiyan to deliver a finishing strike.
Related: Goku Never Should Have Won Against Frieza, & Dragon Ball Super Proves It
In Dragon Ball Super Chapter 20 by Akira Toriyama and Toyotarou, Vegeta and Goku traveled to Future Trunks’ alternate world where the villainous Zamasu and Goku Black (who was another Zamasu possessing the body of an alternate Goku) decimated the planet and meant to do the same to the entire multiverse. To save Trunks’ world and preserve all others, Vegeta and Goku had to stop these monsters then and there, though that would prove more difficult than the Saiyans originally thought. Due to an incessant need to prove himself superior to Goku in whatever form Kakarrot took, Vegeta opts to fight Goku Black while the real Goku fights Zamasu. While Vegeta puts up a good fight
Read more on screenrant.com