Phase shift between two signals
There are many different ways to extract phase shift, the simplest one I think is using normalized cross-correlation using instruction 'xcorr' and then finding the index where the maximum correlation is placed. Other technique as you mentioned is using FFT and spectrum multiplication and ifft(equals to correlation in time) and/or calculation of  arctan(complex/real) of bins. Other methods like Hilbert transform is comprehensively detailed in below links:

https://stackoverflow.com/questions/27545171/identifying-phase-shift-between-signals

Best method to extract phase shift between 2 sinosoids, from data provided