You could do YYZ-YUL-ZRH-BCN, leaving Toronto in the afternoon, arriving in Barcelona on Swiss via Montreal/Zurich the following morning/afternoon. Swiss has flights out of Zurich to Barcelona at 07:10 and 12:20 arriving in Barcelona at 08:55 am and 02:05 pm. The YUL-ZRH route arrives in ZRH at 06:20 am, leaving only 50 minutes for a connection. But I've read it's doable as ZRH is very efficient. If not, your next best option is to arrive in BCN on the next flight out of Zurich in the afternoon. 02:05 pm is better than 11:00 pm arrival on Turkish
Flights with Lufthansa through Frankfurt that arrive in BCN early don't have much longer layovers... And it's better to have a 50 min connection in ZRH, than FRA, where it's not really possible