Bautista, de 35 anos, fechou o jogo em 2 sets a 0, com parciais de 7-5 e 7-6 em uma hora e 53 minutos.
O espanhol surpreendeu Medvedev com sua eficiência no saque, vencendo 75% dos pontos com seu primeiro serviço.
"Para derrotar Daniil nesta quadra, é preciso jogar muito bem", declarou Bautista depois da partida.
Seu próximo adversário será o também russo Andrey Rublev (7º), que se classificou ao derrotar o holandês Tallon Griekspoor (29º) por 2 sets a 1 (3-6, 6-3 e 6-4).
Por sua vez, o tenista da casa Alexander Zverev (22º) avançou às semifinais o eliminar chileno Nicolás Jarry (28º).
Zverev fechou o jogo em 2 sets a 0, com parciais de 7-5 e 6-3, em uma hora e 57 minutos.
Em maio, o alemão tinha sido derrotado por Jarry na semifinal do torneio de Genebra, no saibro, onde o chileno foi posteriormente campeão. Agora, na grama, foi a vez de Zverev dar o troco.
Jarry foi responsável por outra grande surpresa em Halle, ao eliminar o grego Stefanos Tsitsipas (5º) nas oitavas de final.
Recentemente semifinalista em Roland Garros, Zverev está tendo uma boa adaptação à grama e, no sábado, vai disputar uma vaga na final com o cazaque Alexander Bublik (48º), que se classificou com a desistência do italiano Jannik Sinner (9º).
-- ATP 500 de Halle:
- Simples masculino - Quartas de final:
Roberto Bautista (ESP) x Daniil Medvedev (RUS) 7-5, 7-6
Andrey Rublev (RUS) x Tallon Griekspoor (HOL) 3-6, 6-3, 6-4
Alexander Bublik (CAZ) x Jannik Sinner (ITA) 7-5, 2-0 e abandono
Alexander Zverev (ALE) x Nicolás Jarry (CHI) 7-5, 6-3
HALLE WESTFALEN