Magento 2 - Unset Special Price programmatically
Saving the price and forcibly update the product attribute using the resource model worked in my situtation:
$product->setSpecialPrice(null);
$product->getResource()->saveAttribute($product, 'special_price');
Note: Make sure a $product object has store_id = 0. special_price attribute is global attribute. If store_id won't be 0, this method won't work, then you will try to unset special_price.