There are some direct trains from Barcelona to Seville, which take about six hours. Potential stops (aside from Madrid, which the direct train bypasses) would be Zaragoza or Cordoba.
Flying is the other option, which would be less than 90 minutes in the air.