Daniil Medvedev defeated Arthur Fils 6-4, 2-6, 7-6 (9/7) to book his place in the semi-finals at Indian Wells.