Birmingham’s £5m striker James McFadden was a surprise absentee from their line-up at Fratton Park as Alex McLeish’s side sought to extend their unbeaten run to five matches and move away from relegation with a win against FA Cup semi-finalists Portsmouth.