Shoval Gozlan's second-half header and Shimon Abuhatzira's strike denied Shakhter their first Europa League away win while claiming their only success of the group stages, which saw AZ Alkmaar and PAOK Salonika progress to the round of 32.
Roger Canas opened the scoring from the penalty spot for Shakhter in the 43rd minute after Ran Abukarat fouled Gevorg Ghazaryan but it was not enough as Haifa came through to win.
However, goals from Gozlan and Abuhatzira in the 73rd and 81st minutes left the Kazakhstan Premier League side winless in the competition.
Haifa went close before Canas's goal when Gozlan forced Stas Pokatilov to tip the ball over the bar with a testing header from the middle of the area before the goalkeeper was on form to deny Idan Vered's strike from outside the 18-yard box.
Shakhter also had a chance go begging before the half hour mark when Aldin Dzidic forced a brilliant save from Edri, however the visitors finished the first half on a high thanks to Canas's accuracy from the spot.
Maksat Baizhanov's 20-yard curling effort was comfortably saved by Edri after the break before the Haifa keeper denied Ghazaryan from a similar distance.
The game was temporarily suspended in the second half due to a floodlight failure before getting back under way, and Shakhter were made to suffer.
Gozlan netted a 76th-minute header to cancel out Canas's strike before Abuhatzira scored the winner five minutes later.