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.