John Barrowman as Captain Jack