Not the winner, but with the sleepers and odd CrossCountry, Crewe gets a healthy 29 by my count. Reckon any non-city can beat that?
From Wikipedia's list:
Birmingham, Bristol, Carlisle, Chester, Coventry, Derby, Hereford, Lancaster, Lichfield, London, Manchester, Oxford, Preston, Salford...