it's either your IACV(idle air control valve) or you FITV(fast idle thermo valve)...

try this... it worked perfectly for mine(it was the FITV)


Idle problem write up