Celtic break Hearts in narrow victory