Вот так можно:
<?php
$str = 'https://anvis.iaai.com:443/resizer?imageKeys=29697105~SID~B607~S0~I1~RW2592~H1944~TH0&width=161&height=120';
$mas = explode('&', $str);
$mas[1] = 'amp;width=845';
$mas[2] = 'amp;height=633';
$str = implode('&', $mas);
echo($str);
?>
А вообще причина была в том, что у вас точка с запятой лишняя в конце:
'&width=161&height=120;'
Поэтому str_replace() тоже будет работать:
<?php
$str = 'https://anvis.iaai.com:443/resizer?imageKeys=29697105~SID~B607~S0~I1~RW2592~H1944~TH0&width=161&height=120';
$find = '&width=161&height=120';
$replace = '&width=845&height=633';
$res = str_replace($find, $replace, $str);
echo($res);
?>