diff --git a/packages/react-dev-utils/InterpolateHtmlPlugin.js b/packages/react-dev-utils/InterpolateHtmlPlugin.js
index 6ac587b3dc9c6f83d5c37e8419a2fa7213d8682f..07558f4783050dcbd481cb2956bd84cdd17c9705 100644
--- a/packages/react-dev-utils/InterpolateHtmlPlugin.js
+++ b/packages/react-dev-utils/InterpolateHtmlPlugin.js
@@ -16,6 +16,7 @@
 // https://github.com/ampedandwired/html-webpack-plugin#events
 
 'use strict';
+const escapeStringRegexp = require('escape-string-regexp');
 
 class InterpolateHtmlPlugin {
   constructor(replacements) {
@@ -29,7 +30,10 @@ class InterpolateHtmlPlugin {
           // Run HTML through a series of user-specified string replacements.
           Object.keys(this.replacements).forEach(key => {
             const value = this.replacements[key];
-            data.html = data.html.replace('%' + key + '%', value);
+            data.html = data.html.replace(
+              new RegExp('%' + escapeStringRegexp(key) + '%', 'g'),
+              value
+            );
           });
           callback(null, data);
         }
diff --git a/packages/react-dev-utils/package.json b/packages/react-dev-utils/package.json
index 515515f70fd31fcdb35b6574231aa5f24d79816e..f0bf110b3a4fad24360852351437d04c3c70c279 100644
--- a/packages/react-dev-utils/package.json
+++ b/packages/react-dev-utils/package.json
@@ -22,6 +22,7 @@
   ],
   "dependencies": {
     "chalk": "1.1.3",
+    "escape-string-regexp": "1.0.5",
     "opn": "4.0.2"
   },
   "peerDependencies": {