The 23-year-old has beaten the elder of the Williams sisters in two sets, 7-5, 6-0, securing her second Grand Slam title. Muguruza, born in Venezuela, will move up to fifth in the latest world rankings on Monday.
Muguruza's triumph comes two years after she lost her first Wimbledon final to Venus's sister Serena. It took the Venezuela-born Spaniard 77 minutes to beat 11th-seed Williams whose last Grand Slam came in 2009 when she won an All-England title.
Venus Williams missed an opportunity to become the oldest woman in the Open era to win a Grand Slam at 37 years of age. This year's final was the first ever to begin under a closed roof, due to the soggy conditions in London.
Close start, stunning finish
Both players held their ground during the first eight games, with Williams looking closer to breaking Muguruza due to eight unforced errors by the Spaniard in the first twenty minutes.
The American was close to breaking Muguruza numerous times, most notably with a double set point, but the 23-year-old managed to bounce back and secure the point every tune. The set continued to be close, until Muguruza managed to break Williams in the eleventh game, winning the first set 7-5 in the process.
"Grew up watching Venus"
Muguruza continued her good form in the beginning of the second set when she broke Williams three times to win the second set 6-0, thus securing her first Wimbledon title and second Grand Slam in total, having won the Roland Garros in 2016.
"Two years ago I lost in the final against Serena and she told me I would win it one day," said 23-year-old Muguruza after clinching the title. "Here I am, finally!"
Speaking about her opponent, Muguruza was graceful. "I grew up watching Venus," she said. Williams herself congratulated the Spaniard, saying that she knows "how hard" she had worked.
Speaking about the match, Williams said she tried to imitate her younger sister, but to no avail. "I tried my best to do the things Serena does, but I think there will be other opportunities."