Holders Sporting booked their place in the Portuguese Cup final when they come from behind to beat Lisbon rivals Benfica 5-3 in a thrilling semi-final on Wednesday.