Try something like this:
function custom_rewrite( $wp_rewrite ) {
$feed_rules = array(
'(.+)/blog/(.+)' => 'index.php?custom_tax='.$wp_rewrite->preg_index(1).'&post_name=" . $wp_rewrite->preg_index(2)
);
// ( array merge must be done this way, to ensure new rule comes first )
$wp_rewrite->rules = $feed_rules + $wp_rewrite->rules;
}
// refresh/flush permalinks in the dashboard if this is changed in any way
add_filter( "generate_rewrite_rules', 'custom_rewrite' );
Remember to flush permalinks by visiting the permalinks page and re-saving if you add/change this code. Also remove the flush_rewrite_rules();
as advised by Stephen, it’s unnecessary and bad practice.