You need to look at your raw server access log and see exactly what URL-path is being requested. It's evident from the rules that you posted that you aren't quite sure, and for mod_rewrite code, you need to be very sure...
If Apache isn't decoding this URL-path as expected, then the more-complex
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /\%(25)*3[Ee]\%(25)*20Blue\%(25)*20Widgets[^\ ]*\ HTTP/
RewriteRule Blue http://www.example.com/path-to-actual-blue-widget-page [R=301,L]
should work.
Note that the un-anchored RewriteRule pattern "Blue" is used to reduce the number of requests for which the RewriteCond must be processed. If this RewriteRule pattern doesn't match, the RewriteCond won't even be parsed. I used only "Blue" so that we can be sure that it will match, without concern for whether the surrounding characters are decoded or remain as URL-encoded entities.
The "(25)*" subpatterns appearing in the RewriteCond pattern allow for multiply-encoded characters. For example, all of %20 %2520, %25252520, and %25252525252520 will be decoded by Apache to a single space.
I also didn't exactly-match the 'tail' of the malformed URL-path in the RewriteCond pattern, matching it with the generic "zero or more characters, anything but a space" subpattern following "Widgets" and preceding the " HTTP/" at the end.
Once you get something working, you can go ahead and make the patterns more-specific if you like, to improve performance slightly.
Jim