When a maximum value of vibration intensity (maximum vibration intensity)(Vmax) acquired from a vibration sensor (33) in a low engine speed / high engine load (operating region (R)) is equal to or greater than a given threshold value (X), a spark timing of a spark plug (16) is shifted from a point set in a normal state on a retard side with respect to a compression top dead center, farther toward the retard side. Then, when a maximum vibration intensity (Vmax2) acquired after the spark timing retard is greater than a maximum vibration intensity (Vmax1) acquired before the spark timing retard, it is determined that preignition occurs. This technique makes it possible to reliably detect preignition using the vibration sensor, while distinguishing the preignition from knocking. An in-cylinder pressure sensor for detecting an in-cylinder pressure of an engine may be used to determine the presence or absence of the preignition, in the same manner.