In the same year he was named an All Australian for the first time, McVeigh polled 809 votes to finish ahead of fellow co-captain Kieren Jack (769) and last year's winner Josh Kennedy (750).
Dan Hannebery (634), who was named alongside McVeigh and Jack in this year's All Australian side, and Ryan O'Keefe (625) rounded out the top five.
After each game, head coach John Longmire and assistants John Blakey, Leigh Tudor, Stuart Dew and Henry Playfair awarded votes, with each able to allocate up to 10 points for as many or as few players as they wish.
McVeigh, who also took out the Bob Skilton Medal back in 2008, polled votes in all but two games and had two perfect 50s – against Greater Western Sydney in round 16 and in the semi-final victory over Carlton.
Having started the year in the midfield and pushing forward, McVeigh showed his versatility by filling in a key defensive role following a long-term injury to Rhyce Shaw.
“In a season where injuries struck down key personnel, Jarrad has been a consistent contributor all year," Longmire said.
"Both on and off the field, Jarrad’s leadership has been outstanding.
"His ability to adapt at various stages of the season and go into the defence shows his versatility and ability to play his role for the team at all ends of the ground.
"Jarrad stood up in big games throughout the season and led from the front.
"He’s an outstanding player and co-captain and a real leader at the club."
McVeigh accepted the award in front of more than 900 guests at The Star Event Centre in Pyrmont.
On a highly successful night, the 28-year-old also took out the Paul Kelly Players’ Player Award, which is voted on by the Swans playing group, and tied with Kennedy for the Paul Roos Award for the best finals player.
Among the other awards handed out on the night, Dane Rampe won the Rising Star award, Luke Parker was named Most Improved and the retiring Jude Bolton claimed the Best Clubman honour.
2013 Bob Skilton Medal top 10
1. Jarrad McVeigh - 807 votes
2. Kieren Jack - 769
3. Josh Kennedy - 650
4. Dan Hannebery - 634
5. Ryan O’Keefe - 625
6. Luke Parker - 542
7. Ted Richards - 483
8. Craig Bird - 479
9. Nick Smith - 453
10. Nick Malceski - 443
Twitter: @AFL_JD