Silvestre spielte von 1995 bis 1998 für Stade Rennes. Er absolvierte 49 Partien in der höchsten französischen Spielklasse und machte dabei Inter Mailand auf sich aufmerksam. Wenig später wechselte er zu dem italienischen Erstligisten, konnte sich jedoch nie richtig in der Mannschaft etablieren. Silvestre spielte 18-mal in der Serie A, ehe er zu Manchester United wechselte.
Manchester United
Nach seinem Wechsel nach Manchester spielte er zuerst in der Innenverteidigung neben dem Holländer Jaap Stam. Auf dieser Position konnte er seine Fähigkeiten jedoch nicht optimal einbringen, bis ihn TrainerAlex Ferguson auf die linke Außenseite stellte. Er zeigte konstante Leistungen und war lange noch ein wichtiger Rückhalt für die Mannschaft. 2003 hatte er die meisten Spielminuten in der Mannschaft absolviert, als das Team die Meisterschaft in der Premier League gewann. Es war Silvestres dritter Meistertitel im Old Trafford. Am 15. September 2007 zog er sich im Ligaspiel gegen den FC Everton einen Kreuzbandriss zu und fiel in der ersten Mannschaft bis zu seinem Comeback am 9. April 2008 beim Viertelfinalheimsieg in der Champions League gegen die AS Rom aus.
FC Arsenal
Nach dem ersten Spieltag der neuen Saison 2008/09 wechselte Silvestre zum FC Arsenal.[4] Dies war der erste Spielertransfer zwischen United und Arsenal seit 1987. Er bekam die Trikotnummer 18, die vorher von Pascal Cygan getragen worden war. Silvestre gab sein Debüt am 18. Oktober 2008 im Spiel gegen den FC Everton, das auch sein 250. Spiel im englischen Fußball war. In seinem ersten Champions-League-Spiel für den FC Arsenal erzielte er ein Eigentor beim 5:2-Sieg über Fenerbahçe Istanbul. Sein erstes Tor erzielte er am 29. Oktober 2008 gegen Tottenham Hotspur, wurde aber nach dem Spiel von Trainer Arsène Wenger kritisiert.[5] Er wurde auch immer wieder von Fans kritisiert.[6] Am Ende der Saison 2009/10, als Silvestre aufgrund von Verletzungen seiner Mitspieler wieder in die Stammelf aufgestiegen war, verlor Arsenal gegen Tottenham Hotspur durch Abwehrfehler, die u. a. von Silvestre verursacht wurden.[7]
Werder Bremen
Nach der Saison 2009/10 wurde Silvestre von Arsenal freigegeben. Ende August 2010 wechselte er zum BundesligistenWerder Bremen, bei dem er einen Zweijahresvertrag unterschrieb.[8][9] In der Hinrunde der Saison 2010/11 wurde er vom dritten bis zum zwölften Spieltag durchgehend eingesetzt und stand dabei jedes Mal in der Startelf. In seinen zehn Spielen für Werder erhielt er vom Sportmagazin Kicker dreimal die Note 6 und insgesamt einen Notendurchschnitt von 5,05.[10] In der Liste der regelmäßig eingesetzten Spieler landete er mit dieser Benotung auf dem 213. und damit letzten Platz. Zur Rückrunde stabilisierte sich Silvestre, ohne jedoch überzeugen zu können. Während der Vorbereitung auf die Bundesliga-Spielzeit 2011/12 verletzte sich der Verteidiger am Knie und fiel mehrere Monate wegen eines Knorpeldefektes aus.[11] Werder Bremen verlängerte den zum 30. Juni 2012 auslaufenden Vertrag mit Silvestre nicht.[12]
Anschließend trainierte er bei West Ham United und später bei Manchester United mit. Im Oktober 2012 unterschrieb er einen Vertrag beim 2012 neu gegründeten indischen Verein FC Dodsal und sollte ab Januar 2013 für diesen aktiv sein.[13] Zu einer endgültigen Verpflichtung kam es aber nicht.
Portland Timbers
In der Vorbereitung auf die Major League Soccer Saison 2013 trainierte er mit dem Major-League-Soccer-Franchise Seattle Sounders.[14] Nachdem er dort keinen Vertrag bekommen hatte, wurde er am 19. Februar zu den Portland Timbers transferiert, bei denen er einen Zweijahresvertrag unterschrieb.[15] Am 27. Januar 2014 wurde der Vertrag auf Wunsch Silvestres hin aufgelöst.[16]
Chennaiyin FC
Am 20. September 2014 wechselte Silvestre zu dem Indian-Super-League-Franchise Chennaiyin FC. Der Vertrag ging über vier Monate.[17][18] Nach Ablauf des Vertrags am 1. Januar 2015 beendete er seine aktive Karriere.[19]
Nationalmannschaft
In der französischen Nationalmannschaft überzeugte er nicht so wie bei Manchester United. Silvestre debütierte am 27. Februar 2001 gegen Deutschland in der französischen A-Nationalmannschaft, konnte sich jedoch bei der Weltmeisterschaft 2002 nicht in die Mannschaft spielen, auch wenn er im Kader stand. In der Qualifikation zur EURO 2004, als „Les Bleus“ die Gruppe 1 dominierten, wurde Silvestre immer stärker und war am Schluss einer der konstantesten Franzosen. Nach längerer Pause wurde er am 1. März 2006 wieder in der französischen Auswahl eingesetzt und nahm auch an der Weltmeisterschaft 2006 teil. Sein einziger dortiger Einsatz in der Vorrundenpartie gegen Togo war zugleich sein bis heute letztes Länderspiel für die Bleus. Er wurde für das Freundschaftsspiel gegen Uruguay am 19. November 2008 nachnominiert, wurde aber nicht eingewechselt. Dies war seine letzte Nominierung für die Équipe Tricolore.