Petra Kvitova edged past Elise Mertens in three tight sets to reach the semi-finals at Cincinnati on Friday.