Weir startet sin fotballkarriere gjennom et stipendopphold hos University of Evansville i perioden 1986 til 1990. Etter at han returnerte til hjemlandet hadde han et treningsopphold hos Celtic FC, men uten at dette resulterte i et kontraksforslag. I 1992 signerte han under på en kontrakt med hjemklubben Falkirk FC og bidro med 134 seriekamper og åtte mål frem til 1996, og var bidragsyter til at klubben klarte å vinne opprykk til den øverste divisjonen samt Scottish Challenge Cup i 1993.
I juni 1996 meldte Weir overgang til Heart of Midlothian FC, hvor han umiddelbart etablerte seg på førstelaget. I Hearts var han blant annet med på å vinne Scottish Cup i 1998 med finaleseier over Rangers FC. Etter å ha spilt 112 kamper totalt og 12 scoringer ble han februar 1999 solgt videre til den engelske klubben Everton FC for 250 000 pund. Hos Everton fikk han sin seriedebut allerede dagen etter i kampen mot Middlesbrough FC. Weir etablerte seg også her som fast førstelagsspiller og fikk tildelt kapteinsbindet både av Walter Smith og David Moyes. Til sammen fikk han 269 kamper og ti scoringer for Liverpool-klubben frem til 2007.
I januar 2007 dro Weir tilbake til Skottland og signerte på en fri overgang med Rangers FC, hvor han så ble gjenforent med sin tidligere manager Walter Smith. Hos Rangers var han sterkt delaktig i at klubben kjempet om medaljer i sitt stoppersamarbeid sammen med spanske Carlos Cuéllar, og klubben gav Weir flere ettårskontrakter etter endte sesonger til tross for at alderen var høy. I 2008 vant klubben både Scottish Cup og Scottish League Cup, og året etter ble han tildelt kapteinsbindet som ble fratatt Barry Ferguson. I mai 2010 ble Weir tildelt Scottish Football Writers' Association Footballer of the Year, og ble dermed den eldste spilleren som har vunnet denne prisen. I juli 2011 skrev han under på nok en ettårskontrakt med Rangers.[4]
Landslagskarriere
Weir fikk sin landslagsdebut for Skottland i en kamp mot Wales i mai 1997. Han ble tatt ut i troppen til VM i fotball 1998 av landslagstrener Craig Brown, og fikk spille to gruppespillkamper mot henholdsvis Norge og Marokko, hvor han i førstnevnte kamp kom inn som innbytter for Colin Calderwood. Han trakk seg fra landslaget under kvalifiseringen til EM i fotball 2004 etter å ha blitt kritisert av landslagstrener Berti Vogts, men kom tilbake i 2004 da Walter Smith tok over rollen som landslagssjef. I september 2010 ble han tidenes eldste skotske landslagsspiller da han i en alder av 40 år spilte en EM-kvalifiseringskamp mot Litauen. Weir fikk totalt 69 landskamper og ett mål for Skottland frem til han ga seg med landslagfotball mot slutten av 2010.