Wrong wrong and wrong! Almost all the answers here are wrong.
Kyiv is a shortened form of the correct one - Kyyiv. The 'k' sounds the same as in English. The 'y' isn't the correct one, but the closest one, the sound is a bit similar to 'y' in 'weekly' but leans a bit less towards 'i/ee' than in English. The i is a bit harder because there are 2 similar letters in Ukrainian - 'i' that is an actual 'i' and sounds like like 'i' in 'is' and 'ї' that is a bit more tricky and consists of 2 letters and is pronounced like 'yi' in 'yin', but due to there already being one 'y' before that, it's been shortened to only 'i' (which still shouldn't affect the pronunciation). And 'v' is just like 'v' in 'victory'. There's no 'e' in any way in the name, it came from Russian which is NOT native to Ukrainians.
The only difficult part in 'Kharkiv' is the 'kh' which doesn't have the direct representation in the English alphabet, but the closest would be 'h' like in 'hall'. The 'o' part is the same as 'e' in Kyiv.
Lviv doesn't 100% represent the spoken name. There is another letter between 'l' and 'v' which does not have any kind of direct representation in English. The closest sound (yes, not a letter, but only sound) you might get is the sound that you get after 'n' but before you transfer to the 'ew' part in the word 'new'. It'd be the most proper to write it as L'viv (but it wouldn't make much sense in English anyway). The 'o' part is the same as in Kharkiv.