Had something like this happen to my e46. Turned out to be a coil that was causing it.