Davis verruilde in 2002 op zeventienjarige leeftijd de jeugd van de St. Andrews Boys Club voor die van Aston Villa. Na twee jaar bij de reserves werd hij overgeheveld naar het eerste elftal. Hij debuteerde daarvoor op 18 september 2004 tegen Norwich City, als vervanger van Nolberto Solano. Na het seizoen 2005/06 werd Davis door de supporters uitgeroepen tot Villa's 'Young Player Of The Year', 'The Fans Player Of The Year' en 'Player Of The Year'.
Op 5 juli 2007 verliet Davis samen met ploegmaat Aaron Hughes Aston Villa voor Fulham. Op 31 januari 2008 verhuurde Fulham hem voor zes maanden aan Glasgow Rangers. Op 21 augustus 2008 nam Rangers Davis definitief over. Hij tekende hier een vierjarig contract. In zijn laatste seizoen bij de Rangers kreeg Davis de aanvoerdersband toegewezen. Driemaal won Davis met de Schotse club de landstitel.[1]
Davis verruilde het financieel noodlijdende Glasgow Rangers op 6 juli 2012 voor het dan net naar de Premier League gepromoveerde Southampton. Hiermee werd hij in zijn eerste twee seizoenen veertiende en achtste in de eindstand. In het seizoen 2014/15 volgde een zevende plaats, een nieuw record voor Southampton in de Premier League. Ook betekende het voor het eerst in twaalf jaar plaatsing voor Europees voetbal. Dit lukte een jaar later opnieuw via de zesde plaats in de Premier League, opnieuw een verbetering van het clubrecord. Davis verlengde in juni 2016 zijn contract bij Southampton tot medio 2019.[2]
Davis maakte op 9 februari 2005 zijn debuut in het Noord-Iers voetbalelftal in een vriendschappelijke interland tegen Canada (0–1 nederlaag). Hij speelde het volledige duel.[3] Bij Noord-Ierland werd hij in mei 2006 aanvoerder; gedurende twee interlands droeg hij de aanvoerdersband. Sinds oktober 2011 is hij de vaste aanvoerder, thans in meer dan vijftig interlands.[4] Davis werd in mei 2016 opgenomen in de selectie van Noord-Ierland voor het Europees kampioenschap voetbal 2016 in Frankrijk, de eerste deelname van het land aan een EK.[5] Noord-Ierland werd in de achtste finale uitgeschakeld door Wales (0–1), dat won door een eigen doelpunt van de Noord-Ierse verdediger Gareth McAuley.