Which cache is kicking

You could change the file version each time the file gets updated. To do this, go to your functions.php file and find where the style-sheet is being enqueued (or registered) – it will look something like:

wp_enqueue_style( 'theme-style', get_template_directory_uri() . '/style.css' ); 

and change it to:

wp_enqueue_style( 'theme-style', get_template_directory_uri() . '/style.css', array(), filemtime( get_template_directory_uri() . '/style.css' ) ); 

This will change the file version each time you save it, forcing the new version to get loaded.

As you very correctly pointed out, the styles have to be properly added in functions.php, not hard-coded in header.php or elsewhere.